cubacycl.h

Go to the documentation of this file.
00001 
00002 
00003 
00015 
00016 // Copyright (C) 1997-2010 by Pawel Pilarczyk.
00017 //
00018 // This file is part of the Homology Library.  This library is free software;
00019 // you can redistribute it and/or modify it under the terms of the GNU
00020 // General Public License as published by the Free Software Foundation;
00021 // either version 2 of the License, or (at your option) any later version.
00022 //
00023 // This library is distributed in the hope that it will be useful,
00024 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00025 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00026 // GNU General Public License for more details.
00027 //
00028 // You should have received a copy of the GNU General Public License along
00029 // with this software; see the file "license.txt".  If not, write to the
00030 // Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
00031 // MA 02111-1307, USA.
00032 
00033 // Started on November 12, 2005. Last revision: April 23, 2008.
00034 
00035 
00036 #ifndef _CHOMP_HOMOLOGY_CUBACYCL_H_
00037 #define _CHOMP_HOMOLOGY_CUBACYCL_H_
00038 
00039 #include "chomp/struct/bitfield.h"
00040 
00041 namespace chomp {
00042 namespace homology {
00043 
00044 // --------------------------------------------------
00045 // ------------------- acyclic1d --------------------
00046 // --------------------------------------------------
00047 
00049 template <class NeighborCheck>
00050 bool acyclic1d (NeighborCheck &n)
00051 {
00052         if (n. check (0)) goto K4; else goto K5;
00053 K4:     if (n. check (1)) return false; else return true;
00054 K5:     if (n. check (1)) return true; else return false;
00055 } /* acyclic1d */
00056 
00057 
00058 // --------------------------------------------------
00059 // ------------------- acyclic2d --------------------
00060 // --------------------------------------------------
00061 
00063 template <class NeighborCheck>
00064 bool acyclic2d (NeighborCheck &n)
00065 {
00066         if (n. check (0)) goto L659; else goto L20;
00067 L12:    return !n. check (5);
00068 L13:    return n. check (5);
00069 L14:    return !n. check (6);
00070 L16:    return !n. check (7);
00071 L17:    return n. check (7);
00072 L18:    if (n. check (2)) goto L514; else goto L523;
00073 L20:    if (n. check (1)) goto L40; else goto L18;
00074 L21:    if (n. check (5)) return true; else goto L651;
00075 L23:    if (n. check (4)) goto L514; else goto L21;
00076 L24:    if (n. check (4)) return false; else goto L514;
00077 L40:    if (n. check (2)) goto L513; else goto L637;
00078 L505:   if (n. check (6)) return false; else goto L16;
00079 L507:   if (n. check (5)) return true; else goto L16;
00080 L508:   if (n. check (2)) goto L507; else goto L646;
00081 L513:   if (n. check (5)) return true; else goto L14;
00082 L514:   if (n. check (5)) return false; else goto L505;
00083 L523:   if (n. check (3)) goto L24; else goto L23;
00084 L637:   if (n. check (3)) return false; else goto L513;
00085 L646:   if (n. check (4)) return false; else goto L507;
00086 L651:   if (n. check (6)) goto L16; else goto L17;
00087 L658:   if (n. check (2)) goto L12; else goto L13;
00088 L659:   if (n. check (1)) goto L658; else goto L508;
00089 } /* acyclic2d */
00090 
00091 
00092 // --------------------------------------------------
00093 // ------------------- acyclic3d --------------------
00094 // --------------------------------------------------
00095 
00101 template <class NeighborCheck>
00102 bool acyclic3d_Malandain (NeighborCheck &n)
00103 {
00104         int statInv = 0;
00105 
00106 /*L147001:*/ if (n. check (5)) {goto L143033;} else {goto L120232;}
00107 L143033: if (n. check (0)) {goto L123529;} else {goto L118136;}
00108 L123529: if (n. check (17)) {goto L146041;} else {goto L144920;}
00109 L146041: if (n. check (2)) {goto L124809;} else {goto L145112;}
00110 L124809: if (n. check (1)) {goto L106441;} else {goto L124904;}
00111 L106441: if (n. check (8)) {goto L105737;} else {goto L105736;}
00112 L124904: if (n. check (8)) {goto L105736;} else {goto L106537;}
00113 L106537: if (n. check (10)) {goto L105737;} else {goto L105736;}
00114 L145112: if (n. check (1)) {goto L124648;} else {goto L108505;}
00115 L124648: if (n. check (8)) {goto L105736;} else {goto L106473;}
00116 L106473: if (n. check (11)) {goto L105737;} else {goto L105736;}
00117 L108505: if (n. check (8)) {goto L106281;} else {goto L114329;}
00118 L106281: if (n. check (4)) {goto L105737;} else {goto L105736;}
00119 L114329: if (n. check (4)) {goto L128185;} else {goto L115769;}
00120 L128185: if (n. check (11)) {goto L105737;} else {goto L106537;}
00121 L115769: if (n. check (11)) {goto L106537;} else {goto L144408;}
00122 L144408: if (n. check (10)) {goto L105736;} else {goto L106569;}
00123 L106569: if (n. check (13)) {goto L105737;} else {goto L105736;}
00124 L144920: if (n. check (2)) {goto L109080;} else {goto L116761;}
00125 L109080: if (n. check (1)) {statInv=!statInv;goto L106441;} else {goto L118697;}
00126 L118697: if (n. check (19)) {goto L105737;} else {goto L124904;}
00127 L116761: if (n. check (20)) {goto L117817;} else {goto L127624;}
00128 L117817: if (n. check (1)) {goto L105737;} else {goto L117017;}
00129 L117017: if (n. check (19)) {goto L105737;} else {goto L108505;}
00130 L127624: if (n. check (1)) {goto L124648;} else {goto L114553;}
00131 L114553: if (n. check (19)) {goto L108505;} else {goto L118680;}
00132 L118680: if (n. check (8)) {goto L130584;} else {goto L130041;}
00133 L130584: if (n. check (22)) {statInv=!statInv;goto L106281;} else {goto L105736;}
00134 L130041: if (n. check (22)) {goto L126505;} else {goto L137305;}
00135 L126505: if (n. check (4)) {goto L127657;} else {goto L105737;}
00136 L127657: if (n. check (11)) {goto L106537;} else {statInv=!statInv;goto L106537;}
00137 L137305: if (n. check (4)) {goto L127657;} else {goto L115769;}
00138 L118136: if (n. check (17)) {goto L131608;} else {goto L137497;}
00139 L131608: if (n. check (2)) {goto L115784;} else {goto L108185;}
00140 L115784: if (n. check (1)) {goto L117608;} else {goto L121673;}
00141 L117608: if (n. check (9)) {statInv=!statInv;goto L106441;} else {goto L105736;}
00142 L121673: if (n. check (9)) {goto L105737;} else {goto L134921;}
00143 L134921: if (n. check (8)) {goto L105737;} else {goto L106537;}
00144 L108185: if (n. check (1)) {goto L145497;} else {goto L120857;}
00145 L145497: if (n. check (3)) {goto L146729;} else {goto L118584;}
00146 L146729: if (n. check (9)) {goto L105737;} else {goto L130201;}
00147 L130201: if (n. check (8)) {goto L105737;} else {goto L106473;}
00148 L118584: if (n. check (9)) {goto L124648;} else {goto L120680;}
00149 L120680: if (n. check (8)) {goto L105736;} else {goto L119432;}
00150 L119432: if (n. check (12)) {statInv=!statInv;goto L106473;} else {goto L105736;}
00151 L120857: if (n. check (3)) {goto L129049;} else {goto L115481;}
00152 L129049: if (n. check (9)) {goto L105737;} else {goto L120265;}
00153 L120265: if (n. check (8)) {goto L105737;} else {goto L114329;}
00154 L115481: if (n. check (9)) {goto L108505;} else {goto L126889;}
00155 L126889: if (n. check (8)) {goto L106281;} else {goto L146681;}
00156 L146681: if (n. check (4)) {goto L129465;} else {goto L121080;}
00157 L129465: if (n. check (12)) {goto L109273;} else {goto L106537;}
00158 L109273: if (n. check (11)) {goto L106537;} else {goto L105737;}
00159 L121080: if (n. check (12)) {goto L121864;} else {goto L107128;}
00160 L121864: if (n. check (11)) {statInv=!statInv;goto L106537;} else {goto L105737;}
00161 L107128: if (n. check (11)) {statInv=!statInv;goto L106537;} else {goto L144408;}
00162 L137497: if (n. check (18)) {goto L109625;} else {goto L144984;}
00163 L109625: if (n. check (2)) {goto L116633;} else {goto L116569;}
00164 L116633: if (n. check (1)) {goto L105737;} else {goto L107753;}
00165 L107753: if (n. check (19)) {goto L105737;} else {goto L121673;}
00166 L116569: if (n. check (20)) {goto L137753;} else {goto L126057;}
00167 L137753: if (n. check (1)) {goto L105737;} else {goto L122249;}
00168 L122249: if (n. check (19)) {goto L105737;} else {goto L120857;}
00169 L126057: if (n. check (1)) {goto L145497;} else {goto L119273;}
00170 L119273: if (n. check (19)) {goto L120857;} else {goto L107833;}
00171 L107833: if (n. check (3)) {goto L135929;} else {goto L122824;}
00172 L135929: if (n. check (9)) {goto L105737;} else {goto L107961;}
00173 L107961: if (n. check (8)) {goto L105737;} else {goto L130041;}
00174 L122824: if (n. check (9)) {goto L118680;} else {goto L121448;}
00175 L121448: if (n. check (8)) {goto L130584;} else {goto L124136;}
00176 L124136: if (n. check (22)) {goto L143960;} else {goto L125928;}
00177 L143960: if (n. check (4)) {goto L146936;} else {goto L105737;}
00178 L146936: if (n. check (12)) {goto L121864;} else {statInv=!statInv;goto L106537;}
00179 L125928: if (n. check (4)) {goto L146936;} else {goto L121080;}
00180 L144984: if (n. check (2)) {goto L120456;} else {goto L128441;}
00181 L120456: if (n. check (1)) {goto L117608;} else {goto L117657;}
00182 L117657: if (n. check (19)) {goto L121673;} else {goto L127016;}
00183 L127016: if (n. check (9)) {goto L124904;} else {statInv=!statInv;goto L134921;}
00184 L128441: if (n. check (20)) {goto L121577;} else {goto L114488;}
00185 L121577: if (n. check (1)) {goto L145497;} else {goto L124089;}
00186 L124089: if (n. check (19)) {goto L120857;} else {goto L129337;}
00187 L129337: if (n. check (3)) {goto L130169;} else {goto L135480;}
00188 L130169: if (n. check (9)) {goto L108505;} else {goto L107225;}
00189 L107225: if (n. check (8)) {goto L106281;} else {goto L126025;}
00190 L126025: if (n. check (4)) {goto L123049;} else {goto L121864;}
00191 L123049: if (n. check (11)) {goto L105737;} else {statInv=!statInv;goto L106537;}
00192 L135480: if (n. check (9)) {goto L130904;} else {goto L146968;}
00193 L130904: if (n. check (8)) {statInv=!statInv;goto L106281;} else {goto L126505;}
00194 L146968: if (n. check (8)) {statInv=!statInv;goto L106281;} else {goto L143960;}
00195 L114488: if (n. check (1)) {goto L146616;} else {goto L129881;}
00196 L146616: if (n. check (3)) {goto L134312;} else {goto L136217;}
00197 L134312: if (n. check (9)) {goto L124648;} else {statInv=!statInv;goto L130201;}
00198 L136217: if (n. check (21)) {goto L105737;} else {goto L118584;}
00199 L129881: if (n. check (19)) {goto L133913;} else {goto L125960;}
00200 L133913: if (n. check (3)) {goto L108953;} else {goto L122217;}
00201 L108953: if (n. check (9)) {goto L108505;} else {goto L136281;}
00202 L136281: if (n. check (8)) {goto L106281;} else {goto L143177;}
00203 L143177: if (n. check (4)) {goto L109273;} else {goto L121864;}
00204 L122217: if (n. check (21)) {goto L105737;} else {goto L115481;}
00205 L125960: if (n. check (3)) {goto L134536;} else {goto L134697;}
00206 L134536: if (n. check (9)) {goto L118680;} else {goto L135096;}
00207 L135096: if (n. check (8)) {goto L130584;} else {goto L137704;}
00208 L137704: if (n. check (22)) {goto L143128;} else {goto L121864;}
00209 L143128: if (n. check (4)) {goto L121864;} else {goto L105737;}
00210 L134697: if (n. check (21)) {goto L105737;} else {goto L122824;}
00211 L120232: if (n. check (0)) {goto L126936;} else {goto L126121;}
00212 L126936: if (n. check (17)) {goto L123272;} else {goto L132825;}
00213 L123272: if (n. check (2)) {goto L123848;} else {goto L131161;}
00214 L123848: if (n. check (1)) {goto L114968;} else {goto L119785;}
00215 L114968: if (n. check (14)) {statInv=!statInv;goto L106441;} else {goto L105736;}
00216 L119785: if (n. check (7)) {goto L135721;} else {goto L128600;}
00217 L135721: if (n. check (14)) {goto L105737;} else {goto L134921;}
00218 L128600: if (n. check (14)) {goto L124904;} else {goto L135352;}
00219 L135352: if (n. check (8)) {goto L105736;} else {goto L136472;}
00220 L136472: if (n. check (16)) {statInv=!statInv;goto L106537;} else {goto L105736;}
00221 L131161: if (n. check (1)) {goto L113913;} else {goto L145833;}
00222 L113913: if (n. check (14)) {goto L105737;} else {goto L130201;}
00223 L145833: if (n. check (7)) {goto L132249;} else {goto L142617;}
00224 L132249: if (n. check (14)) {goto L105737;} else {goto L120265;}
00225 L142617: if (n. check (14)) {goto L108505;} else {goto L137769;}
00226 L137769: if (n. check (8)) {goto L106281;} else {goto L125321;}
00227 L125321: if (n. check (4)) {goto L142841;} else {goto L129368;}
00228 L142841: if (n. check (11)) {goto L105737;} else {goto L136472;}
00229 L129368: if (n. check (11)) {goto L136472;} else {goto L106809;}
00230 L106809: if (n. check (16)) {goto L105737;} else {goto L130457;}
00231 L130457: if (n. check (10)) {goto L105737;} else {goto L106569;}
00232 L132825: if (n. check (23)) {goto L136121;} else {goto L123080;}
00233 L136121: if (n. check (2)) {goto L123785;} else {goto L132537;}
00234 L123785: if (n. check (1)) {goto L105737;} else {goto L108697;}
00235 L108697: if (n. check (19)) {goto L105737;} else {goto L119785;}
00236 L132537: if (n. check (20)) {goto L138169;} else {goto L142761;}
00237 L138169: if (n. check (1)) {goto L105737;} else {goto L116793;}
00238 L116793: if (n. check (19)) {goto L105737;} else {goto L145833;}
00239 L142761: if (n. check (1)) {goto L113913;} else {goto L135737;}
00240 L135737: if (n. check (19)) {goto L145833;} else {goto L131481;}
00241 L131481: if (n. check (7)) {goto L123753;} else {goto L107608;}
00242 L123753: if (n. check (14)) {goto L105737;} else {goto L107961;}
00243 L107608: if (n. check (14)) {goto L118680;} else {goto L109400;}
00244 L109400: if (n. check (8)) {goto L130584;} else {goto L128504;}
00245 L128504: if (n. check (22)) {goto L135224;} else {goto L124712;}
00246 L135224: if (n. check (4)) {goto L144696;} else {goto L105737;}
00247 L144696: if (n. check (11)) {goto L136472;} else {goto L105737;}
00248 L124712: if (n. check (4)) {goto L144696;} else {goto L129368;}
00249 L123080: if (n. check (2)) {goto L107192;} else {goto L114137;}
00250 L107192: if (n. check (1)) {goto L114968;} else {goto L130521;}
00251 L130521: if (n. check (19)) {goto L119785;} else {goto L133768;}
00252 L133768: if (n. check (7)) {goto L136760;} else {goto L127209;}
00253 L136760: if (n. check (14)) {goto L124904;} else {statInv=!statInv;goto L134921;}
00254 L127209: if (n. check (25)) {goto L105737;} else {goto L128600;}
00255 L114137: if (n. check (20)) {goto L107801;} else {goto L132280;}
00256 L107801: if (n. check (1)) {goto L113913;} else {goto L143225;}
00257 L143225: if (n. check (19)) {goto L145833;} else {goto L136249;}
00258 L136249: if (n. check (7)) {goto L132345;} else {goto L130361;}
00259 L132345: if (n. check (14)) {goto L108505;} else {goto L107225;}
00260 L130361: if (n. check (25)) {goto L105737;} else {goto L142617;}
00261 L132280: if (n. check (1)) {goto L114008;} else {goto L106649;}
00262 L114008: if (n. check (14)) {goto L124648;} else {statInv=!statInv;goto L130201;}
00263 L106649: if (n. check (19)) {goto L137465;} else {goto L121512;}
00264 L137465: if (n. check (7)) {goto L130329;} else {goto L144904;}
00265 L130329: if (n. check (14)) {goto L108505;} else {goto L136281;}
00266 L144904: if (n. check (14)) {goto L130904;} else {goto L132040;}
00267 L132040: if (n. check (8)) {statInv=!statInv;goto L106281;} else {goto L135224;}
00268 L121512: if (n. check (7)) {goto L134152;} else {goto L117401;}
00269 L134152: if (n. check (14)) {goto L118680;} else {goto L135096;}
00270 L117401: if (n. check (25)) {goto L105737;} else {goto L107608;}
00271 L126121: if (n. check (17)) {goto L123817;} else {goto L145849;}
00272 L123817: if (n. check (6)) {goto L123465;} else {goto L119336;}
00273 L123465: if (n. check (2)) {goto L122809;} else {goto L117305;}
00274 L122809: if (n. check (1)) {goto L118169;} else {goto L107769;}
00275 L118169: if (n. check (9)) {goto L105737;} else {goto L123337;}
00276 L123337: if (n. check (14)) {goto L105737;} else {goto L106441;}
00277 L107769: if (n. check (9)) {goto L105737;} else {goto L125993;}
00278 L125993: if (n. check (7)) {goto L135721;} else {goto L145145;}
00279 L145145: if (n. check (14)) {goto L134921;} else {goto L114105;}
00280 L114105: if (n. check (8)) {goto L105737;} else {goto L136472;}
00281 L117305: if (n. check (1)) {goto L143769;} else {goto L146873;}
00282 L143769: if (n. check (3)) {goto L125865;} else {goto L132665;}
00283 L125865: if (n. check (9)) {goto L105737;} else {goto L113913;}
00284 L132665: if (n. check (9)) {goto L113913;} else {goto L128825;}
00285 L128825: if (n. check (14)) {goto L105737;} else {goto L135865;}
00286 L135865: if (n. check (8)) {goto L105737;} else {goto L119432;}
00287 L146873: if (n. check (3)) {goto L146297;} else {goto L146233;}
00288 L146297: if (n. check (9)) {goto L105737;} else {goto L117241;}
00289 L117241: if (n. check (7)) {goto L132249;} else {goto L106585;}
00290 L106585: if (n. check (14)) {goto L120265;} else {goto L126537;}
00291 L126537: if (n. check (8)) {goto L105737;} else {goto L125321;}
00292 L146233: if (n. check (9)) {goto L145833;} else {goto L125417;}
00293 L125417: if (n. check (7)) {goto L134009;} else {goto L125369;}
00294 L134009: if (n. check (14)) {goto L105737;} else {goto L145977;}
00295 L145977: if (n. check (8)) {goto L105737;} else {goto L146681;}
00296 L125369: if (n. check (14)) {goto L126889;} else {goto L136233;}
00297 L136233: if (n. check (8)) {goto L106281;} else {goto L136440;}
00298 L136440: if (n. check (4)) {goto L136056;} else {goto L108601;}
00299 L136056: if (n. check (12)) {goto L144696;} else {goto L136472;}
00300 L108601: if (n. check (12)) {goto L105737;} else {goto L118617;}
00301 L118617: if (n. check (11)) {goto L105737;} else {goto L106809;}
00302 L119336: if (n. check (2)) {goto L134824;} else {goto L124105;}
00303 L134824: if (n. check (1)) {goto L115992;} else {goto L128377;}
00304 L115992: if (n. check (9)) {goto L114968;} else {goto L146072;}
00305 L146072: if (n. check (15)) {statInv=!statInv;goto L123337;} else {goto L105736;}
00306 L128377: if (n. check (9)) {goto L119785;} else {goto L130729;}
00307 L130729: if (n. check (7)) {goto L122041;} else {goto L108056;}
00308 L122041: if (n. check (15)) {goto L107273;} else {goto L134921;}
00309 L107273: if (n. check (14)) {goto L134921;} else {goto L105737;}
00310 L108056: if (n. check (15)) {goto L134568;} else {goto L134440;}
00311 L134568: if (n. check (14)) {statInv=!statInv;goto L134921;} else {statInv=!statInv;goto L106441;}
00312 L134440: if (n. check (14)) {statInv=!statInv;goto L134921;} else {goto L135352;}
00313 L124105: if (n. check (1)) {goto L136841;} else {goto L108153;}
00314 L136841: if (n. check (3)) {goto L143209;} else {goto L120488;}
00315 L143209: if (n. check (9)) {goto L113913;} else {goto L143161;}
00316 L143161: if (n. check (15)) {goto L123017;} else {goto L130201;}
00317 L123017: if (n. check (14)) {goto L130201;} else {goto L105737;}
00318 L120488: if (n. check (9)) {goto L114008;} else {goto L143832;}
00319 L143832: if (n. check (15)) {goto L123496;} else {goto L120680;}
00320 L123496: if (n. check (14)) {goto L120680;} else {statInv=!statInv;goto L106441;}
00321 L108153: if (n. check (3)) {goto L136825;} else {goto L120873;}
00322 L136825: if (n. check (9)) {goto L145833;} else {goto L121833;}
00323 L121833: if (n. check (7)) {goto L108441;} else {goto L131321;}
00324 L108441: if (n. check (15)) {goto L126729;} else {goto L120265;}
00325 L126729: if (n. check (14)) {goto L120265;} else {goto L105737;}
00326 L131321: if (n. check (15)) {goto L145177;} else {goto L129945;}
00327 L145177: if (n. check (14)) {goto L107225;} else {goto L107065;}
00328 L107065: if (n. check (8)) {goto L106281;} else {goto L105737;}
00329 L129945: if (n. check (14)) {goto L107225;} else {goto L137769;}
00330 L120873: if (n. check (9)) {goto L137465;} else {goto L109305;}
00331 L109305: if (n. check (7)) {goto L121257;} else {goto L135992;}
00332 L121257: if (n. check (15)) {goto L114393;} else {goto L126889;}
00333 L114393: if (n. check (14)) {goto L126889;} else {goto L107065;}
00334 L135992: if (n. check (15)) {goto L108376;} else {goto L146136;}
00335 L108376: if (n. check (14)) {goto L146968;} else {goto L143384;}
00336 L143384: if (n. check (8)) {statInv=!statInv;goto L106281;} else {goto L105737;}
00337 L146136: if (n. check (14)) {goto L146968;} else {goto L106968;}
00338 L106968: if (n. check (8)) {statInv=!statInv;goto L106281;} else {goto L136440;}
00339 L145849: if (n. check (23)) {goto L136025;} else {goto L131385;}
00340 L136025: if (n. check (18)) {goto L128953;} else {goto L144505;}
00341 L128953: if (n. check (6)) {goto L136921;} else {goto L115561;}
00342 L136921: if (n. check (2)) {goto L115705;} else {goto L124425;}
00343 L115705: if (n. check (1)) {goto L105737;} else {goto L116729;}
00344 L116729: if (n. check (19)) {goto L105737;} else {goto L107769;}
00345 L124425: if (n. check (20)) {goto L114617;} else {goto L133241;}
00346 L114617: if (n. check (1)) {goto L105737;} else {goto L116825;}
00347 L116825: if (n. check (19)) {goto L105737;} else {goto L146873;}
00348 L133241: if (n. check (1)) {goto L143769;} else {goto L123241;}
00349 L123241: if (n. check (19)) {goto L146873;} else {goto L125481;}
00350 L125481: if (n. check (3)) {goto L137737;} else {goto L123433;}
00351 L137737: if (n. check (9)) {goto L105737;} else {goto L108409;}
00352 L108409: if (n. check (7)) {goto L123753;} else {goto L135769;}
00353 L135769: if (n. check (14)) {goto L107961;} else {goto L134025;}
00354 L134025: if (n. check (8)) {goto L105737;} else {goto L128504;}
00355 L123433: if (n. check (9)) {goto L131481;} else {goto L114905;}
00356 L114905: if (n. check (7)) {goto L131865;} else {goto L108632;}
00357 L131865: if (n. check (14)) {goto L105737;} else {goto L129849;}
00358 L129849: if (n. check (8)) {goto L105737;} else {goto L124136;}
00359 L108632: if (n. check (14)) {goto L121448;} else {goto L109112;}
00360 L109112: if (n. check (8)) {goto L130584;} else {goto L116281;}
00361 L116281: if (n. check (22)) {goto L105737;} else {goto L135193;}
00362 L135193: if (n. check (4)) {goto L105737;} else {goto L108601;}
00363 L115561: if (n. check (2)) {goto L127913;} else {goto L134873;}
00364 L127913: if (n. check (1)) {goto L105737;} else {goto L145689;}
00365 L145689: if (n. check (19)) {goto L105737;} else {goto L128377;}
00366 L134873: if (n. check (20)) {goto L115353;} else {goto L116217;}
00367 L115353: if (n. check (1)) {goto L105737;} else {goto L131193;}
00368 L131193: if (n. check (19)) {goto L105737;} else {goto L108153;}
00369 L116217: if (n. check (1)) {goto L136841;} else {goto L137209;}
00370 L137209: if (n. check (19)) {goto L108153;} else {goto L107865;}
00371 L107865: if (n. check (3)) {goto L142969;} else {goto L124232;}
00372 L142969: if (n. check (9)) {goto L131481;} else {goto L129193;}
00373 L129193: if (n. check (7)) {goto L146201;} else {goto L106616;}
00374 L146201: if (n. check (15)) {goto L132297;} else {goto L107961;}
00375 L132297: if (n. check (14)) {goto L107961;} else {goto L105737;}
00376 L106616: if (n. check (15)) {goto L134280;} else {goto L121336;}
00377 L134280: if (n. check (14)) {goto L135096;} else {goto L124616;}
00378 L124616: if (n. check (8)) {goto L130584;} else {goto L105737;}
00379 L121336: if (n. check (14)) {goto L135096;} else {goto L109400;}
00380 L124232: if (n. check (9)) {goto L143576;} else {goto L145816;}
00381 L143576: if (n. check (7)) {goto L134152;} else {goto L105737;}
00382 L145816: if (n. check (7)) {goto L145656;} else {goto L145577;}
00383 L145656: if (n. check (15)) {goto L134408;} else {goto L121448;}
00384 L134408: if (n. check (14)) {goto L121448;} else {goto L124616;}
00385 L145577: if (n. check (15)) {goto L105737;} else {goto L122153;}
00386 L122153: if (n. check (14)) {goto L105737;} else {goto L119721;}
00387 L119721: if (n. check (8)) {goto L105737;} else {goto L116281;}
00388 L144505: if (n. check (6)) {goto L127689;} else {goto L117912;}
00389 L127689: if (n. check (2)) {goto L129081;} else {goto L142873;}
00390 L129081: if (n. check (1)) {goto L118169;} else {goto L120937;}
00391 L120937: if (n. check (19)) {goto L107769;} else {goto L122745;}
00392 L122745: if (n. check (9)) {goto L119785;} else {goto L108665;}
00393 L108665: if (n. check (7)) {goto L131129;} else {goto L134568;}
00394 L131129: if (n. check (14)) {goto L105737;} else {statInv=!statInv;goto L124904;}
00395 L142873: if (n. check (20)) {goto L125065;} else {goto L137977;}
00396 L125065: if (n. check (1)) {goto L143769;} else {goto L106873;}
00397 L106873: if (n. check (19)) {goto L146873;} else {goto L122889;}
00398 L122889: if (n. check (3)) {goto L120137;} else {goto L116921;}
00399 L120137: if (n. check (9)) {goto L145833;} else {goto L120121;}
00400 L120121: if (n. check (7)) {goto L128009;} else {goto L145177;}
00401 L128009: if (n. check (14)) {goto L105737;} else {goto L114057;}
00402 L114057: if (n. check (8)) {goto L105737;} else {goto L126025;}
00403 L116921: if (n. check (9)) {goto L136537;} else {goto L109465;}
00404 L136537: if (n. check (7)) {goto L121129;} else {goto L144904;}
00405 L121129: if (n. check (14)) {goto L105737;} else {goto L127305;}
00406 L127305: if (n. check (8)) {goto L105737;} else {goto L126505;}
00407 L109465: if (n. check (7)) {goto L126089;} else {goto L108376;}
00408 L126089: if (n. check (14)) {goto L105737;} else {goto L128137;}
00409 L128137: if (n. check (8)) {goto L105737;} else {goto L143960;}
00410 L137977: if (n. check (1)) {goto L137369;} else {goto L131033;}
00411 L137369: if (n. check (3)) {goto L121961;} else {goto L120809;}
00412 L121961: if (n. check (9)) {goto L113913;} else {goto L108281;}
00413 L108281: if (n. check (14)) {goto L105737;} else {statInv=!statInv;goto L124648;}
00414 L120809: if (n. check (21)) {goto L105737;} else {goto L132665;}
00415 L131033: if (n. check (19)) {goto L115257;} else {goto L131833;}
00416 L115257: if (n. check (3)) {goto L143801;} else {goto L117273;}
00417 L143801: if (n. check (9)) {goto L145833;} else {goto L118777;}
00418 L118777: if (n. check (7)) {goto L144089;} else {goto L144841;}
00419 L144089: if (n. check (14)) {goto L105737;} else {goto L121353;}
00420 L121353: if (n. check (8)) {goto L105737;} else {goto L143177;}
00421 L144841: if (n. check (14)) {goto L136281;} else {goto L135801;}
00422 L135801: if (n. check (8)) {goto L106281;} else {goto L135224;}
00423 L117273: if (n. check (21)) {goto L105737;} else {goto L146233;}
00424 L131833: if (n. check (3)) {goto L122505;} else {goto L119593;}
00425 L122505: if (n. check (9)) {goto L131481;} else {goto L123721;}
00426 L123721: if (n. check (7)) {goto L133721;} else {goto L134280;}
00427 L133721: if (n. check (14)) {goto L105737;} else {goto L133561;}
00428 L133561: if (n. check (8)) {goto L105737;} else {goto L137704;}
00429 L119593: if (n. check (21)) {goto L105737;} else {goto L123433;}
00430 L117912: if (n. check (2)) {goto L137048;} else {goto L136601;}
00431 L137048: if (n. check (1)) {goto L115992;} else {goto L119881;}
00432 L119881: if (n. check (19)) {goto L128377;} else {goto L137912;}
00433 L137912: if (n. check (9)) {goto L119944;} else {goto L127336;}
00434 L119944: if (n. check (7)) {goto L136760;} else {goto L105737;}
00435 L127336: if (n. check (7)) {goto L115576;} else {goto L105737;}
00436 L115576: if (n. check (15)) {goto L134568;} else {statInv=!statInv;goto L134921;}
00437 L136601: if (n. check (20)) {goto L128025;} else {goto L129304;}
00438 L128025: if (n. check (1)) {goto L136841;} else {goto L120985;}
00439 L120985: if (n. check (19)) {goto L108153;} else {goto L120041;}
00440 L120041: if (n. check (3)) {goto L118553;} else {goto L120712;}
00441 L118553: if (n. check (9)) {goto L118905;} else {goto L119177;}
00442 L118905: if (n. check (7)) {goto L132345;} else {goto L105737;}
00443 L119177: if (n. check (7)) {goto L126249;} else {goto L105737;}
00444 L126249: if (n. check (15)) {goto L145177;} else {goto L107225;}
00445 L120712: if (n. check (9)) {goto L124200;} else {goto L127848;}
00446 L124200: if (n. check (7)) {goto L107672;} else {goto L105737;}
00447 L107672: if (n. check (14)) {goto L130904;} else {goto L144024;}
00448 L144024: if (n. check (8)) {statInv=!statInv;goto L106281;} else {goto L143128;}
00449 L127848: if (n. check (7)) {goto L146920;} else {goto L105737;}
00450 L146920: if (n. check (15)) {goto L108376;} else {goto L146968;}
00451 L129304: if (n. check (1)) {goto L125560;} else {goto L132601;}
00452 L125560: if (n. check (3)) {goto L125576;} else {goto L121769;}
00453 L125576: if (n. check (9)) {goto L114008;} else {goto L124008;}
00454 L124008: if (n. check (15)) {goto L115496;} else {statInv=!statInv;goto L130201;}
00455 L115496: if (n. check (14)) {statInv=!statInv;goto L130201;} else {statInv=!statInv;goto L106441;}
00456 L121769: if (n. check (21)) {goto L105737;} else {goto L120488;}
00457 L132601: if (n. check (19)) {goto L106681;} else {goto L133080;}
00458 L106681: if (n. check (3)) {goto L144729;} else {goto L109209;}
00459 L144729: if (n. check (9)) {goto L137465;} else {goto L108985;}
00460 L108985: if (n. check (7)) {goto L123113;} else {goto L144568;}
00461 L123113: if (n. check (15)) {goto L133785;} else {goto L136281;}
00462 L133785: if (n. check (14)) {goto L136281;} else {goto L107065;}
00463 L144568: if (n. check (15)) {goto L137272;} else {goto L138440;}
00464 L137272: if (n. check (14)) {goto L144024;} else {goto L143384;}
00465 L138440: if (n. check (14)) {goto L144024;} else {goto L132040;}
00466 L109209: if (n. check (21)) {goto L105737;} else {goto L120873;}
00467 L133080: if (n. check (3)) {goto L114632;} else {goto L126409;}
00468 L114632: if (n. check (9)) {goto L143576;} else {goto L143896;}
00469 L143896: if (n. check (7)) {goto L131112;} else {goto L105737;}
00470 L131112: if (n. check (15)) {goto L134280;} else {goto L135096;}
00471 L126409: if (n. check (21)) {goto L105737;} else {goto L124232;}
00472 L131385: if (n. check (18)) {goto L128985;} else {goto L132920;}
00473 L128985: if (n. check (6)) {goto L115833;} else {goto L143816;}
00474 L115833: if (n. check (2)) {goto L120841;} else {goto L138329;}
00475 L120841: if (n. check (1)) {goto L118169;} else {goto L143481;}
00476 L143481: if (n. check (19)) {goto L107769;} else {goto L121801;}
00477 L121801: if (n. check (9)) {goto L105737;} else {goto L118809;}
00478 L118809: if (n. check (7)) {goto L121609;} else {goto L116665;}
00479 L121609: if (n. check (14)) {goto L134921;} else {statInv=!statInv;goto L124904;}
00480 L116665: if (n. check (25)) {goto L105737;} else {goto L145145;}
00481 L138329: if (n. check (20)) {goto L125225;} else {goto L124553;}
00482 L125225: if (n. check (1)) {goto L143769;} else {goto L117721;}
00483 L117721: if (n. check (19)) {goto L146873;} else {goto L127081;}
00484 L127081: if (n. check (3)) {goto L120905;} else {goto L130009;}
00485 L120905: if (n. check (9)) {goto L105737;} else {goto L126265;}
00486 L126265: if (n. check (7)) {goto L136137;} else {goto L107321;}
00487 L136137: if (n. check (14)) {goto L120265;} else {goto L114057;}
00488 L107321: if (n. check (25)) {goto L105737;} else {goto L106585;}
00489 L130009: if (n. check (9)) {goto L136249;} else {goto L124745;}
00490 L124745: if (n. check (7)) {goto L115609;} else {goto L115385;}
00491 L115609: if (n. check (14)) {goto L126889;} else {goto L109561;}
00492 L109561: if (n. check (8)) {goto L106281;} else {goto L143960;}
00493 L115385: if (n. check (25)) {goto L105737;} else {goto L125369;}
00494 L124553: if (n. check (1)) {goto L143417;} else {goto L129209;}
00495 L143417: if (n. check (3)) {goto L138297;} else {goto L130712;}
00496 L138297: if (n. check (9)) {goto L105737;} else {goto L126857;}
00497 L126857: if (n. check (14)) {goto L130201;} else {statInv=!statInv;goto L124648;}
00498 L130712: if (n. check (9)) {goto L114008;} else {goto L123496;}
00499 L129209: if (n. check (19)) {goto L144537;} else {goto L132217;}
00500 L144537: if (n. check (3)) {goto L117785;} else {goto L137625;}
00501 L117785: if (n. check (9)) {goto L105737;} else {goto L108521;}
00502 L108521: if (n. check (7)) {goto L125513;} else {goto L119001;}
00503 L125513: if (n. check (14)) {goto L120265;} else {goto L121353;}
00504 L119001: if (n. check (14)) {goto L127305;} else {goto L119737;}
00505 L119737: if (n. check (8)) {goto L105737;} else {goto L135224;}
00506 L137625: if (n. check (9)) {goto L137465;} else {goto L143353;}
00507 L143353: if (n. check (7)) {goto L114393;} else {goto L108376;}
00508 L132217: if (n. check (3)) {goto L137113;} else {goto L145208;}
00509 L137113: if (n. check (9)) {goto L105737;} else {goto L119849;}
00510 L119849: if (n. check (7)) {goto L132761;} else {goto L138025;}
00511 L132761: if (n. check (14)) {goto L107961;} else {goto L133561;}
00512 L138025: if (n. check (25)) {goto L105737;} else {goto L135769;}
00513 L145208: if (n. check (9)) {goto L121512;} else {goto L138040;}
00514 L138040: if (n. check (7)) {goto L134408;} else {goto L133017;}
00515 L133017: if (n. check (25)) {goto L105737;} else {goto L108632;}
00516 L143816: if (n. check (2)) {goto L137176;} else {goto L127721;}
00517 L137176: if (n. check (1)) {goto L115992;} else {goto L146009;}
00518 L146009: if (n. check (19)) {goto L128377;} else {goto L130120;}
00519 L130120: if (n. check (9)) {goto L133768;} else {goto L120296;}
00520 L120296: if (n. check (7)) {goto L115576;} else {goto L126153;}
00521 L126153: if (n. check (25)) {goto L105737;} else {goto L108056;}
00522 L127721: if (n. check (20)) {goto L125161;} else {goto L118664;}
00523 L125161: if (n. check (1)) {goto L136841;} else {goto L144249;}
00524 L144249: if (n. check (19)) {goto L108153;} else {goto L126713;}
00525 L126713: if (n. check (3)) {goto L123305;} else {goto L143192;}
00526 L123305: if (n. check (9)) {goto L136249;} else {goto L137657;}
00527 L137657: if (n. check (7)) {goto L126249;} else {goto L146377;}
00528 L146377: if (n. check (25)) {goto L105737;} else {goto L131321;}
00529 L143192: if (n. check (9)) {goto L116184;} else {goto L125128;}
00530 L116184: if (n. check (7)) {goto L107672;} else {goto L137433;}
00531 L137433: if (n. check (25)) {goto L105737;} else {goto L144904;}
00532 L125128: if (n. check (7)) {goto L146920;} else {goto L134137;}
00533 L134137: if (n. check (25)) {goto L105737;} else {goto L135992;}
00534 L118664: if (n. check (1)) {goto L109432;} else {goto L109033;}
00535 L109432: if (n. check (3)) {goto L125576;} else {goto L105737;}
00536 L109033: if (n. check (19)) {goto L134217;} else {goto L122120;}
00537 L134217: if (n. check (3)) {goto L144729;} else {goto L105737;}
00538 L122120: if (n. check (3)) {goto L115672;} else {goto L145433;}
00539 L115672: if (n. check (9)) {goto L121512;} else {goto L136664;}
00540 L136664: if (n. check (7)) {goto L131112;} else {goto L143321;}
00541 L143321: if (n. check (25)) {goto L105737;} else {goto L106616;}
00542 L145433: if (n. check (9)) {goto L105737;} else {goto L114873;}
00543 L114873: if (n. check (7)) {goto L105737;} else {goto L126377;}
00544 L126377: if (n. check (25)) {goto L105737;} else {goto L145577;}
00545 L132920: if (n. check (6)) {goto L118488;} else {goto L115001;}
00546 L118488: if (n. check (2)) {goto L133976;} else {goto L118537;}
00547 L133976: if (n. check (1)) {goto L107704;} else {goto L115161;}
00548 L107704: if (n. check (9)) {goto L114968;} else {statInv=!statInv;goto L123337;}
00549 L115161: if (n. check (19)) {goto L108489;} else {goto L131416;}
00550 L108489: if (n. check (9)) {goto L119785;} else {goto L123209;}
00551 L123209: if (n. check (7)) {goto L107273;} else {goto L134568;}
00552 L131416: if (n. check (9)) {goto L133768;} else {goto L130024;}
00553 L130024: if (n. check (7)) {goto L134568;} else {goto L125721;}
00554 L125721: if (n. check (25)) {goto L105737;} else {goto L134568;}
00555 L118537: if (n. check (20)) {goto L125833;} else {goto L117368;}
00556 L125833: if (n. check (1)) {goto L118521;} else {goto L106745;}
00557 L118521: if (n. check (3)) {goto L143305;} else {goto L130712;}
00558 L143305: if (n. check (9)) {goto L113913;} else {goto L123017;}
00559 L106745: if (n. check (19)) {goto L109593;} else {goto L135257;}
00560 L109593: if (n. check (3)) {goto L132089;} else {goto L137625;}
00561 L132089: if (n. check (9)) {goto L145833;} else {goto L129113;}
00562 L129113: if (n. check (7)) {goto L126729;} else {goto L145177;}
00563 L135257: if (n. check (3)) {goto L145561;} else {goto L127976;}
00564 L145561: if (n. check (9)) {goto L136249;} else {goto L114361;}
00565 L114361: if (n. check (7)) {goto L145177;} else {goto L119113;}
00566 L119113: if (n. check (25)) {goto L105737;} else {goto L145177;}
00567 L127976: if (n. check (9)) {goto L116184;} else {goto L127112;}
00568 L127112: if (n. check (7)) {goto L108376;} else {goto L108313;}
00569 L108313: if (n. check (25)) {goto L105737;} else {goto L108376;}
00570 L117368: if (n. check (1)) {goto L119528;} else {goto L107289;}
00571 L119528: if (n. check (3)) {goto L118232;} else {goto L106841;}
00572 L118232: if (n. check (9)) {goto L114008;} else {goto L115496;}
00573 L106841: if (n. check (21)) {goto L105737;} else {goto L130712;}
00574 L107289: if (n. check (19)) {goto L133817;} else {goto L118200;}
00575 L133817: if (n. check (3)) {goto L136089;} else {goto L130617;}
00576 L136089: if (n. check (9)) {goto L137465;} else {goto L134121;}
00577 L134121: if (n. check (7)) {goto L133785;} else {goto L137272;}
00578 L130617: if (n. check (21)) {goto L105737;} else {goto L137625;}
00579 L118200: if (n. check (3)) {goto L145880;} else {goto L114201;}
00580 L145880: if (n. check (9)) {goto L121512;} else {goto L108856;}
00581 L108856: if (n. check (7)) {goto L134280;} else {goto L127593;}
00582 L127593: if (n. check (25)) {goto L105737;} else {goto L134280;}
00583 L114201: if (n. check (21)) {goto L105737;} else {goto L145208;}
00584 L115001: if (n. check (24)) {goto L121929;} else {goto L107640;}
00585 L121929: if (n. check (2)) {goto L105737;} else {goto L123593;}
00586 L123593: if (n. check (20)) {goto L105737;} else {goto L144281;}
00587 L144281: if (n. check (1)) {goto L105737;} else {goto L122473;}
00588 L122473: if (n. check (19)) {goto L105737;} else {goto L143545;}
00589 L143545: if (n. check (3)) {goto L105737;} else {goto L126793;}
00590 L126793: if (n. check (21)) {goto L105737;} else {goto L145433;}
00591 L107640: if (n. check (2)) {goto L137176;} else {goto L132857;}
00592 L132857: if (n. check (20)) {goto L125161;} else {goto L143912;}
00593 L143912: if (n. check (1)) {goto L125560;} else {goto L134601;}
00594 L134601: if (n. check (19)) {goto L106681;} else {goto L125608;}
00595 L125608: if (n. check (3)) {goto L115672;} else {goto L135609;}
00596 L135609: if (n. check (21)) {goto L145433;} else {goto L109016;}
00597 L109016: if (n. check (9)) {goto L121512;} else {goto L143000;}
00598 L143000: if (n. check (7)) {goto L145656;} else {goto L132889;}
00599 L132889: if (n. check (25)) {goto L145577;} else {goto L143928;}
00600 L143928: if (n. check (15)) {goto L108632;} else {goto L135672;}
00601 L135672: if (n. check (14)) {goto L121448;} else {goto L118008;}
00602 L118008: if (n. check (8)) {goto L130584;} else {goto L128344;}
00603 L128344: if (n. check (22)) {goto L136440;} else {goto L115448;}
00604 L115448: if (n. check (4)) {goto L136056;} else {goto L122056;}
00605 L122056: if (n. check (12)) {goto L129368;} else {goto L129688;}
00606 L129688: if (n. check (11)) {goto L136472;} else {goto L136376;}
00607 L136376: if (n. check (16)) {goto L144408;} else {statInv=!statInv;goto L130457;}
00608 L105736: return !statInv;
00609 L105737: return statInv;
00610 } /* acyclic3d_Malandain */
00611 
00613 template <class NeighborCheck>
00614 bool acyclic3d (NeighborCheck &n)
00615 {
00616         if (n. check (0)) goto K1043; else goto K978;
00617 K14:    return !n. check (6);
00618 K15:    return n. check (6);
00619 K36:    return !n. check (17);
00620 K37:    return n. check (17);
00621 K38:    return !n. check (18);
00622 K39:    return n. check (18);
00623 K48:    return !n. check (23);
00624 K49:    return n. check (23);
00625 K50:    return !n. check (24);
00626 K52:    return !n. check (25);
00627 K53:    return n. check (25);
00628 K54:    if (n. check (17)) goto K2585; else goto K154;
00629 K56:    if (n. check (20)) return false; else goto K2302;
00630 K57:    if (n. check (7)) goto K1863; else goto K939;
00631 K59:    if (n. check (20)) goto K2302; else goto K2088;
00632 K63:    if (n. check (17)) goto K15; else goto K2377;
00633 K64:    if (n. check (4)) goto K1575; else goto K1541;
00634 K65:    if (n. check (1)) goto K504; else goto K1046;
00635 K67:    if (n. check (4)) goto K1402; else goto K793;
00636 K68:    if (n. check (16)) return false; else goto K174;
00637 K69:    if (n. check (18)) goto K49; else goto K1636;
00638 K76:    if (n. check (19)) return false; else goto K1900;
00639 K78:    if (n. check (19)) goto K690; else goto K1873;
00640 K79:    if (n. check (20)) goto K57; else goto K1797;
00641 K80:    if (n. check (20)) goto K2317; else goto K237;
00642 K82:    if (n. check (19)) goto K1559; else goto K1414;
00643 K85:    if (n. check (20)) goto K2317; else goto K464;
00644 K90:    if (n. check (4)) goto K862; else goto K1928;
00645 K92:    if (n. check (4)) goto K59; else goto K2119;
00646 K93:    if (n. check (7)) goto K1863; else return false;
00647 K97:    if (n. check (5)) goto K361; else goto K244;
00648 K98:    if (n. check (1)) return false; else goto K1299;
00649 K101:   if (n. check (13)) return false; else goto K184;
00650 K102:   if (n. check (1)) goto K2536; else goto K2453;
00651 K105:   if (n. check (20)) goto K248; else goto K712;
00652 K106:   if (n. check (1)) goto K1410; else goto K139;
00653 K112:   if (n. check (5)) goto K359; else goto K121;
00654 K115:   if (n. check (4)) goto K307; else goto K101;
00655 K117:   if (n. check (14)) goto K2247; else goto K580;
00656 K118:   if (n. check (4)) goto K826; else goto K2473;
00657 K119:   if (n. check (13)) return false; else goto K2174;
00658 K121:   if (n. check (8)) goto K106; else goto K226;
00659 K123:   if (n. check (4)) goto K1814; else goto K1442;
00660 K124:   if (n. check (10)) goto K1086; else goto K1683;
00661 K125:   if (n. check (14)) goto K355; else goto K1816;
00662 K127:   if (n. check (1)) return false; else goto K1000;
00663 K131:   if (n. check (17)) return false; else goto K200;
00664 K134:   if (n. check (19)) return false; else goto K1862;
00665 K137:   if (n. check (11)) goto K177; else goto K167;
00666 K139:   if (n. check (4)) goto K891; else goto K1234;
00667 K143:   if (n. check (13)) return false; else goto K2460;
00668 K154:   if (n. check (15)) return false; else goto K342;
00669 K155:   if (n. check (14)) goto K1410; else goto K1549;
00670 K156:   if (n. check (1)) return false; else goto K2181;
00671 K158:   if (n. check (4)) goto K1610; else goto K1250;
00672 K163:   if (n. check (16)) return false; else goto K2112;
00673 K164:   if (n. check (17)) goto K2585; else return false;
00674 K165:   if (n. check (10)) return false; else goto K1607;
00675 K166:   if (n. check (20)) goto K2422; else goto K2417;
00676 K167:   if (n. check (1)) goto K504; else goto K977;
00677 K172:   if (n. check (7)) goto K988; else goto K559;
00678 K174:   if (n. check (19)) goto K1950; else goto K465;
00679 K175:   if (n. check (19)) goto K1948; else goto K164;
00680 K177:   if (n. check (1)) return false; else goto K2279;
00681 K181:   if (n. check (14)) goto K533; else goto K118;
00682 K182:   if (n. check (19)) return false; else goto K2368;
00683 K184:   if (n. check (20)) goto K1607; else goto K2423;
00684 K185:   if (n. check (20)) return false; else goto K1614;
00685 K192:   if (n. check (20)) goto K2410; else goto K2063;
00686 K195:   if (n. check (7)) goto K1153; else goto K268;
00687 K198:   if (n. check (23)) return true; else goto K52;
00688 K199:   if (n. check (1)) goto K117; else goto K1399;
00689 K200:   if (n. check (15)) goto K2377; else goto K1992;
00690 K202:   if (n. check (7)) goto K273; else goto K1332;
00691 K203:   if (n. check (19)) return true; else goto K37;
00692 K204:   if (n. check (16)) return false; else goto K1794;
00693 K205:   if (n. check (13)) return false; else goto K1442;
00694 K215:   if (n. check (19)) goto K545; else goto K37;
00695 K219:   if (n. check (7)) goto K182; else goto K2264;
00696 K222:   if (n. check (1)) goto K728; else goto K1954;
00697 K224:   if (n. check (7)) goto K1226; else goto K261;
00698 K225:   if (n. check (7)) goto K1922; else goto K2403;
00699 K226:   if (n. check (9)) goto K452; else goto K1825;
00700 K229:   if (n. check (15)) goto K1571; else goto K453;
00701 K230:   if (n. check (19)) goto K1949; else goto K1263;
00702 K232:   if (n. check (7)) goto K1153; else return false;
00703 K235:   if (n. check (19)) goto K2063; else goto K1760;
00704 K236:   if (n. check (6)) goto K1940; else goto K1506;
00705 K237:   if (n. check (7)) goto K2112; else goto K163;
00706 K238:   if (n. check (20)) return false; else goto K2058;
00707 K241:   if (n. check (1)) goto K624; else goto K2371;
00708 K242:   if (n. check (1)) goto K1832; else goto K687;
00709 K244:   if (n. check (8)) goto K258; else goto K2277;
00710 K246:   if (n. check (23)) return true; else goto K803;
00711 K248:   if (n. check (7)) goto K987; else goto K1804;
00712 K249:   if (n. check (14)) return false; else goto K1135;
00713 K251:   if (n. check (4)) goto K872; else goto K2576;
00714 K254:   if (n. check (7)) goto K1924; else return false;
00715 K255:   if (n. check (17)) goto K14; else goto K2377;
00716 K257:   if (n. check (14)) return false; else goto K832;
00717 K258:   if (n. check (1)) goto K832; else goto K863;
00718 K260:   if (n. check (19)) goto K839; else goto K722;
00719 K261:   if (n. check (19)) goto K2058; else goto K873;
00720 K267:   if (n. check (16)) return false; else goto K2313;
00721 K268:   if (n. check (16)) return false; else goto K1253;
00722 K273:   if (n. check (19)) return false; else goto K1769;
00723 K278:   if (n. check (19)) goto K686; else goto K37;
00724 K281:   if (n. check (22)) goto K2381; else goto K1559;
00725 K285:   if (n. check (11)) goto K1257; else goto K199;
00726 K293:   if (n. check (7)) goto K1565; else goto K2296;
00727 K307:   if (n. check (20)) goto K1607; else goto K203;
00728 K342:   if (n. check (6)) return false; else goto K2000;
00729 K350:   if (n. check (6)) goto K1805; else goto K2602;
00730 K354:   if (n. check (6)) goto K867; else goto K2002;
00731 K355:   if (n. check (4)) goto K1762; else goto K1519;
00732 K356:   if (n. check (7)) goto K1297; else goto K1794;
00733 K359:   if (n. check (8)) goto K1256; else goto K2365;
00734 K360:   if (n. check (19)) return false; else goto K1761;
00735 K361:   if (n. check (8)) goto K1773; else goto K2344;
00736 K368:   if (n. check (19)) return false; else goto K36;
00737 K399:   if (n. check (17)) goto K15; else goto K1571;
00738 K401:   if (n. check (14)) goto K427; else goto K875;
00739 K411:   if (n. check (13)) return false; else goto K762;
00740 K427:   if (n. check (4)) goto K928; else goto K2134;
00741 K428:   if (n. check (1)) goto K2247; else goto K1135;
00742 K433:   if (n. check (17)) return false; else goto K1571;
00743 K448:   if (n. check (1)) goto K921; else goto K856;
00744 K451:   if (n. check (7)) goto K578; else goto K1939;
00745 K452:   if (n. check (11)) goto K222; else goto K2113;
00746 K453:   if (n. check (6)) goto K2544; else goto K2002;
00747 K454:   if (n. check (14)) goto K1135; else goto K67;
00748 K464:   if (n. check (7)) goto K1799; else goto K2349;
00749 K465:   if (n. check (17)) goto K14; else return false;
00750 K486:   if (n. check (21)) goto K1242; else goto K198;
00751 K492:   if (n. check (17)) goto K15; else goto K2421;
00752 K494:   if (n. check (8)) goto K428; else goto K1147;
00753 K497:   if (n. check (7)) goto K1924; else goto K2306;
00754 K504:   if (n. check (20)) return false; else goto K1559;
00755 K507:   if (n. check (7)) goto K1470; else goto K2487;
00756 K521:   if (n. check (14)) goto K1648; else goto K1171;
00757 K522:   if (n. check (14)) return false; else goto K1608;
00758 K523:   if (n. check (14)) goto K248; else goto K2317;
00759 K524:   if (n. check (12)) goto K98; else goto K2215;
00760 K533:   if (n. check (4)) goto K1542; else return false;
00761 K543:   if (n. check (14)) goto K2044; else goto K1405;
00762 K545:   if (n. check (17)) return true; else goto K39;
00763 K559:   if (n. check (22)) goto K174; else goto K1864;
00764 K578:   if (n. check (19)) goto K2410; else goto K2063;
00765 K580:   if (n. check (20)) goto K832; else goto K1950;
00766 K590:   if (n. check (6)) goto K2497; else goto K2602;
00767 K591:   if (n. check (14)) goto K863; else goto K225;
00768 K592:   if (n. check (15)) goto K2467; else goto K2602;
00769 K624:   if (n. check (20)) goto K37; else return true;
00770 K649:   if (n. check (5)) goto K1520; else goto K2586;
00771 K685:   if (n. check (10)) goto K454; else goto K2267;
00772 K686:   if (n. check (17)) return true; else goto K2363;
00773 K687:   if (n. check (10)) goto K2028; else goto K181;
00774 K690:   if (n. check (17)) return false; else goto K229;
00775 K691:   if (n. check (6)) goto K1242; else return false;
00776 K698:   if (n. check (1)) goto K1457; else goto K685;
00777 K703:   if (n. check (20)) goto K2302; else goto K281;
00778 K712:   if (n. check (7)) goto K1110; else goto K2199;
00779 K718:   if (n. check (19)) goto K2058; else return false;
00780 K722:   if (n. check (17)) goto K2585; else goto K1593;
00781 K724:   if (n. check (17)) goto K14; else goto K236;
00782 K725:   if (n. check (18)) return false; else goto K1233;
00783 K728:   if (n. check (14)) return false; else goto K1410;
00784 K731:   if (n. check (13)) return false; else goto K2119;
00785 K741:   if (n. check (14)) goto K1608; else goto K451;
00786 K751:   if (n. check (7)) goto K1264; else goto K1179;
00787 K752:   if (n. check (20)) goto K921; else goto K686;
00788 K761:   if (n. check (7)) goto K1813; else goto K1253;
00789 K762:   if (n. check (20)) goto K2120; else goto K2350;
00790 K773:   if (n. check (19)) return false; else goto K433;
00791 K785:   if (n. check (22)) goto K2533; else goto K690;
00792 K792:   if (n. check (8)) goto K1534; else goto K2314;
00793 K793:   if (n. check (20)) goto K225; else goto K942;
00794 K803:   if (n. check (24)) goto K52; else goto K53;
00795 K826:   if (n. check (20)) goto K2317; else goto K908;
00796 K831:   if (n. check (16)) goto K2092; else goto K1623;
00797 K832:   if (n. check (17)) goto K14; else goto K354;
00798 K839:   if (n. check (17)) goto K2585; else goto K592;
00799 K843:   if (n. check (22)) goto K2112; else goto K260;
00800 K856:   if (n. check (10)) goto K2302; else goto K2120;
00801 K862:   if (n. check (20)) goto K225; else goto K2386;
00802 K863:   if (n. check (7)) goto K134; else goto K1527;
00803 K867:   if (n. check (18)) return false; else goto K48;
00804 K871:   if (n. check (10)) goto K2028; else goto K2310;
00805 K872:   if (n. check (20)) goto K2302; else goto K2381;
00806 K873:   if (n. check (17)) return false; else goto K198;
00807 K875:   if (n. check (4)) goto K1957; else goto K119;
00808 K891:   if (n. check (20)) goto K863; else goto K2367;
00809 K894:   if (n. check (17)) goto K15; else goto K691;
00810 K907:   if (n. check (14)) return false; else goto K2247;
00811 K908:   if (n. check (7)) goto K175; else goto K1048;
00812 K909:   if (n. check (16)) return false; else goto K920;
00813 K920:   if (n. check (19)) goto K690; else goto K2175;
00814 K921:   if (n. check (17)) return true; else goto K38;
00815 K924:   if (n. check (10)) goto K1245; else goto K1441;
00816 K928:   if (n. check (20)) goto K863; else goto K1972;
00817 K937:   if (n. check (4)) goto K1204; else goto K2119;
00818 K939:   if (n. check (16)) return false; else goto K1804;
00819 K942:   if (n. check (7)) goto K785; else goto K843;
00820 K966:   if (n. check (20)) goto K921; else goto K545;
00821 K977:   if (n. check (10)) goto K2001; else goto K251;
00822 K978:   if (n. check (2)) goto K97; else goto K1563;
00823 K983:   if (n. check (4)) goto K1903; else goto K184;
00824 K987:   if (n. check (19)) goto K832; else goto K1042;
00825 K988:   if (n. check (22)) goto K2416; else goto K1862;
00826 K1000:  if (n. check (10)) return false; else goto K983;
00827 K1001:  if (n. check (6)) goto K1735; else goto K1090;
00828 K1002:  if (n. check (14)) goto K1846; else goto K123;
00829 K1042:  if (n. check (17)) goto K14; else goto K350;
00830 K1043:  if (n. check (2)) goto K649; else goto K1904;
00831 K1044:  if (n. check (20)) goto K2317; else goto K2057;
00832 K1046:  if (n. check (10)) goto K2001; else goto K937;
00833 K1048:  if (n. check (16)) return false; else goto K1179;
00834 K1067:  if (n. check (17)) return false; else goto K1001;
00835 K1075:  if (n. check (1)) goto K2437; else goto K2123;
00836 K1086:  if (n. check (14)) goto K1923; else goto K90;
00837 K1087:  if (n. check (20)) goto K1608; else goto K202;
00838 K1090:  if (n. check (21)) goto K2602; else goto K69;
00839 K1095:  if (n. check (19)) goto K2058; else goto K1769;
00840 K1108:  if (n. check (1)) goto K2198; else goto K2570;
00841 K1110:  if (n. check (19)) goto K1042; else goto K465;
00842 K1112:  if (n. check (20)) goto K1608; else goto K761;
00843 K1134:  if (n. check (22)) goto K175; else goto K1948;
00844 K1135:  if (n. check (4)) goto K185; else goto K1977;
00845 K1136:  if (n. check (22)) goto K215; else goto K545;
00846 K1147:  if (n. check (9)) goto K285; else goto K2256;
00847 K1149:  if (n. check (19)) goto K2144; else goto K839;
00848 K1153:  if (n. check (22)) goto K1332; else goto K2063;
00849 K1171:  if (n. check (4)) goto K79; else goto K1289;
00850 K1179:  if (n. check (19)) goto K1948; else goto K54;
00851 K1180:  if (n. check (20)) goto K2144; else goto K1948;
00852 K1181:  if (n. check (6)) goto K1242; else goto K1506;
00853 K1196:  if (n. check (7)) return false; else goto K2495;
00854 K1200:  if (n. check (7)) goto K1149; else return false;
00855 K1204:  if (n. check (20)) return false; else goto K82;
00856 K1210:  if (n. check (19)) goto K1862; else goto K2368;
00857 K1211:  if (n. check (7)) goto K78; else goto K909;
00858 K1217:  if (n. check (14)) goto K1135; else goto K1633;
00859 K1221:  if (n. check (10)) goto K591; else goto K523;
00860 K1226:  if (n. check (19)) return false; else goto K2058;
00861 K1233:  if (n. check (23)) return false; else goto K2352;
00862 K1234:  if (n. check (20)) goto K248; else goto K507;
00863 K1238:  if (n. check (7)) goto K360; else goto K1794;
00864 K1242:  if (n. check (18)) goto K198; else return false;
00865 K1245:  if (n. check (4)) goto K1460; else goto K762;
00866 K1250:  if (n. check (20)) goto K1200; else goto K1300;
00867 K1253:  if (n. check (22)) goto K1332; else goto K235;
00868 K1256:  if (n. check (1)) goto K752; else goto K1245;
00869 K1257:  if (n. check (1)) goto K907; else goto K1471;
00870 K1263:  if (n. check (17)) goto K14; else goto K2421;
00871 K1264:  if (n. check (19)) return false; else goto K131;
00872 K1270:  if (n. check (14)) return false; else goto K863;
00873 K1285:  if (n. check (20)) return false; else goto K690;
00874 K1288:  if (n. check (7)) goto K2250; else goto K174;
00875 K1289:  if (n. check (13)) return false; else goto K2490;
00876 K1297:  if (n. check (19)) goto K1949; else goto K465;
00877 K1299:  if (n. check (10)) return false; else goto K1302;
00878 K1300:  if (n. check (7)) goto K1134; else goto K2092;
00879 K1302:  if (n. check (14)) return false; else goto K2341;
00880 K1307:  if (n. check (4)) goto K105; else goto K143;
00881 K1327:  if (n. check (11)) goto K1910; else goto K1915;
00882 K1328:  if (n. check (20)) goto K2120; else goto K215;
00883 K1332:  if (n. check (19)) goto K2063; else goto K37;
00884 K1393:  if (n. check (1)) goto K543; else goto K124;
00885 K1395:  if (n. check (1)) goto K752; else goto K2486;
00886 K1399:  if (n. check (10)) goto K1867; else goto K401;
00887 K1402:  if (n. check (20)) return false; else goto K1598;
00888 K1405:  if (n. check (20)) goto K2144; else goto K839;
00889 K1409:  if (n. check (17)) return false; else goto K590;
00890 K1410:  if (n. check (20)) goto K832; else goto K1949;
00891 K1413:  if (n. check (1)) goto K966; else goto K1763;
00892 K1414:  if (n. check (17)) return false; else goto K39;
00893 K1423:  if (n. check (14)) goto K139; else goto K2429;
00894 K1438:  if (n. check (17)) goto K15; else return false;
00895 K1441:  if (n. check (4)) goto K1498; else return false;
00896 K1442:  if (n. check (20)) goto K451; else goto K195;
00897 K1449:  if (n. check (20)) return false; else goto K1211;
00898 K1457:  if (n. check (14)) goto K2247; else goto K1285;
00899 K1460:  if (n. check (20)) goto K2302; else goto K76;
00900 K1461:  if (n. check (17)) return false; else goto K236;
00901 K1470:  if (n. check (22)) goto K1297; else goto K1949;
00902 K1471:  if (n. check (10)) goto K249; else goto K1217;
00903 K1475:  if (n. check (19)) goto K2410; else goto K1760;
00904 K1498:  if (n. check (20)) goto K2120; else goto K278;
00905 K1506:  if (n. check (18)) goto K198; else goto K1233;
00906 K1507:  if (n. check (4)) goto K80; else goto K1947;
00907 K1519:  if (n. check (13)) return false; else goto K1112;
00908 K1520:  if (n. check (8)) goto K1803; else goto K1693;
00909 K1521:  if (n. check (4)) goto K1449; else goto K85;
00910 K1527:  if (n. check (19)) goto K832; else goto K724;
00911 K1534:  if (n. check (1)) goto K504; else goto K2001;
00912 K1538:  if (n. check (20)) goto K451; else goto K2062;
00913 K1541:  if (n. check (20)) goto K1970; else goto K1801;
00914 K1542:  if (n. check (20)) goto K248; else goto K356;
00915 K1543:  if (n. check (21)) goto K1506; else goto K2581;
00916 K1549:  if (n. check (20)) goto K399; else goto K63;
00917 K1558:  if (n. check (1)) goto K257; else goto K2173;
00918 K1559:  if (n. check (17)) return false; else goto K38;
00919 K1562:  if (n. check (13)) return false; else goto K1234;
00920 K1563:  if (n. check (3)) goto K2598; else goto K112;
00921 K1565:  if (n. check (22)) goto K174; else goto K1950;
00922 K1571:  if (n. check (6)) goto K2544; else return false;
00923 K1575:  if (n. check (20)) goto K863; else goto K1288;
00924 K1587:  if (n. check (4)) goto K1328; else goto K731;
00925 K1593:  if (n. check (15)) goto K691; else goto K1181;
00926 K1598:  if (n. check (7)) goto K1922; else goto K920;
00927 K1599:  if (n. check (1)) goto K624; else goto K983;
00928 K1607:  if (n. check (19)) goto K37; else return true;
00929 K1608:  if (n. check (7)) goto K1226; else goto K1475;
00930 K1610:  if (n. check (20)) goto K225; else goto K751;
00931 K1611:  if (n. check (20)) return false; else goto K224;
00932 K1614:  if (n. check (7)) goto K134; else goto K2313;
00933 K1623:  if (n. check (22)) goto K1179; else goto K1700;
00934 K1633:  if (n. check (4)) goto K2209; else goto K2174;
00935 K1636:  if (n. check (23)) return true; else goto K50;
00936 K1648:  if (n. check (4)) goto K1542; else goto K1562;
00937 K1664:  if (n. check (20)) goto K93; else goto K254;
00938 K1683:  if (n. check (14)) goto K1307; else goto K1507;
00939 K1687:  if (n. check (17)) goto K15; else goto K2467;
00940 K1692:  if (n. check (7)) goto K1860; else goto K2411;
00941 K1693:  if (n. check (1)) goto K37; else goto K165;
00942 K1700:  if (n. check (19)) goto K1948; else goto K2451;
00943 K1705:  if (n. check (8)) goto K2045; else goto K1835;
00944 K1728:  if (n. check (10)) return false; else goto K2302;
00945 K1735:  if (n. check (21)) goto K1805; else goto K48;
00946 K1760:  if (n. check (17)) return true; else goto K198;
00947 K1761:  if (n. check (17)) return false; else goto K2377;
00948 K1762:  if (n. check (20)) goto K1608; else goto K1925;
00949 K1763:  if (n. check (10)) goto K92; else goto K1587;
00950 K1764:  if (n. check (4)) goto K166; else goto K2490;
00951 K1769:  if (n. check (17)) return false; else goto K49;
00952 K1772:  if (n. check (7)) goto K578; else return false;
00953 K1773:  if (n. check (1)) goto K921; else goto K2302;
00954 K1789:  if (n. check (1)) goto K2410; else goto K1608;
00955 K1794:  if (n. check (19)) goto K63; else goto K1438;
00956 K1797:  if (n. check (7)) goto K1794; else goto K204;
00957 K1798:  if (n. check (19)) goto K63; else goto K492;
00958 K1799:  if (n. check (22)) goto K2112; else goto K839;
00959 K1801:  if (n. check (7)) goto K1565; else return false;
00960 K1803:  if (n. check (1)) goto K36; else goto K1607;
00961 K1804:  if (n. check (19)) goto K399; else goto K894;
00962 K1805:  if (n. check (18)) goto K48; else return false;
00963 K1813:  if (n. check (22)) goto K718; else goto K2058;
00964 K1814:  if (n. check (20)) return false; else goto K1843;
00965 K1816:  if (n. check (4)) goto K1538; else goto K205;
00966 K1822:  if (n. check (7)) goto K1799; else return false;
00967 K1824:  if (n. check (19)) return false; else goto K1873;
00968 K1825:  if (n. check (11)) goto K242; else goto K524;
00969 K1828:  if (n. check (14)) goto K863; else goto K2422;
00970 K1832:  if (n. check (14)) goto K1410; else goto K1180;
00971 K1835:  if (n. check (11)) goto K1075; else goto K1108;
00972 K1843:  if (n. check (7)) goto K1095; else goto K2091;
00973 K1846:  if (n. check (4)) goto K1611; else goto K1112;
00974 K1855:  if (n. check (14)) goto K139; else goto K1764;
00975 K1859:  if (n. check (7)) goto K2190; else goto K267;
00976 K1860:  if (n. check (22)) goto K1110; else goto K1042;
00977 K1861:  if (n. check (20)) goto K1772; else goto K232;
00978 K1862:  if (n. check (17)) return false; else goto K354;
00979 K1863:  if (n. check (19)) goto K399; else goto K1687;
00980 K1864:  if (n. check (19)) goto K1950; else goto K724;
00981 K1867:  if (n. check (14)) goto K1135; else goto K64;
00982 K1873:  if (n. check (17)) return false; else goto K592;
00983 K1900:  if (n. check (17)) return false; else goto K2363;
00984 K1903:  if (n. check (20)) return false; else goto K368;
00985 K1904:  if (n. check (5)) goto K2108; else goto K1705;
00986 K1905:  if (n. check (13)) goto K2473; else goto K1044;
00987 K1910:  if (n. check (1)) goto K752; else goto K924;
00988 K1915:  if (n. check (12)) return false; else goto K1395;
00989 K1922:  if (n. check (19)) return false; else goto K690;
00990 K1923:  if (n. check (4)) goto K2200; else goto K2460;
00991 K1924:  if (n. check (22)) goto K1794; else goto K63;
00992 K1925:  if (n. check (7)) goto K718; else goto K1332;
00993 K1926:  if (n. check (20)) goto K1998; else goto K1238;
00994 K1928:  if (n. check (20)) goto K1200; else goto K1822;
00995 K1934:  if (n. check (7)) goto K174; else goto K68;
00996 K1939:  if (n. check (16)) return false; else goto K1475;
00997 K1940:  if (n. check (18)) return false; else goto K198;
00998 K1947:  if (n. check (13)) return false; else goto K85;
00999 K1948:  if (n. check (17)) goto K2585; else goto K200;
01000 K1949:  if (n. check (17)) goto K14; else goto K1001;
01001 K1950:  if (n. check (17)) goto K14; else goto K590;
01002 K1954:  if (n. check (10)) goto K2343; else goto K1855;
01003 K1957:  if (n. check (20)) goto K2422; else goto K1934;
01004 K1970:  if (n. check (7)) goto K2292; else return false;
01005 K1972:  if (n. check (7)) goto K2416; else goto K174;
01006 K1977:  if (n. check (20)) goto K863; else goto K172;
01007 K1985:  if (n. check (19)) goto K433; else goto K2003;
01008 K1992:  if (n. check (6)) goto K2321; else goto K1090;
01009 K1996:  if (n. check (16)) return false; else goto K1332;
01010 K1998:  if (n. check (7)) goto K773; else goto K1804;
01011 K2000:  if (n. check (21)) return false; else goto K725;
01012 K2001:  if (n. check (4)) goto K56; else goto K703;
01013 K2002:  if (n. check (18)) goto K48; else goto K1636;
01014 K2003:  if (n. check (17)) return false; else goto K691;
01015 K2019:  if (n. check (1)) return false; else goto K1728;
01016 K2028:  if (n. check (14)) goto K139; else goto K158;
01017 K2041:  if (n. check (11)) goto K156; else goto K1395;
01018 K2044:  if (n. check (20)) goto K832; else goto K1042;
01019 K2045:  if (n. check (1)) goto K238; else goto K1846;
01020 K2057:  if (n. check (7)) goto K1134; else goto K831;
01021 K2058:  if (n. check (17)) return false; else goto K48;
01022 K2062:  if (n. check (7)) goto K1332; else goto K1996;
01023 K2063:  if (n. check (17)) return true; else goto K49;
01024 K2067:  if (n. check (16)) return false; else goto K230;
01025 K2082:  if (n. check (20)) return false; else goto K2177;
01026 K2084:  if (n. check (13)) return false; else goto K2473;
01027 K2087:  if (n. check (14)) goto K832; else goto K2144;
01028 K2088:  if (n. check (19)) return false; else goto K1414;
01029 K2091:  if (n. check (16)) return false; else goto K261;
01030 K2092:  if (n. check (22)) return false; else goto K2099;
01031 K2099:  if (n. check (19)) return false; else goto K2376;
01032 K2108:  if (n. check (8)) goto K1599; else goto K2434;
01033 K2112:  if (n. check (19)) goto K839; else goto K164;
01034 K2113:  if (n. check (1)) goto K155; else goto K2415;
01035 K2117:  if (n. check (14)) return false; else goto K1846;
01036 K2119:  if (n. check (20)) goto K2120; else goto K1136;
01037 K2120:  if (n. check (19)) goto K921; else goto K545;
01038 K2122:  if (n. check (4)) goto K1498; else goto K411;
01039 K2123:  if (n. check (10)) goto K2117; else goto K1002;
01040 K2134:  if (n. check (13)) return false; else goto K1977;
01041 K2144:  if (n. check (17)) goto K2585; else goto K229;
01042 K2147:  if (n. check (1)) goto K2087; else goto K1221;
01043 K2152:  if (n. check (19)) goto K1687; else goto K894;
01044 K2173:  if (n. check (10)) goto K1270; else goto K1828;
01045 K2174:  if (n. check (20)) goto K2422; else goto K293;
01046 K2175:  if (n. check (17)) return false; else goto K1593;
01047 K2177:  if (n. check (7)) goto K1210; else goto K1985;
01048 K2181:  if (n. check (10)) return false; else goto K1245;
01049 K2190:  if (n. check (19)) goto K1862; else goto K1409;
01050 K2198:  if (n. check (14)) goto K238; else goto K192;
01051 K2199:  if (n. check (19)) goto K1687; else goto K1438;
01052 K2200:  if (n. check (20)) goto K863; else goto K219;
01053 K2209:  if (n. check (20)) return false; else goto K1859;
01054 K2214:  if (n. check (4)) goto K2082; else goto K2460;
01055 K2215:  if (n. check (1)) goto K1832; else goto K871;
01056 K2232:  if (n. check (4)) goto K826; else goto K1905;
01057 K2245:  if (n. check (15)) goto K2421; else goto K2303;
01058 K2247:  if (n. check (20)) return false; else goto K1862;
01059 K2250:  if (n. check (19)) return false; else goto K1409;
01060 K2256:  if (n. check (11)) goto K698; else goto K1393;
01061 K2264:  if (n. check (19)) goto K1042; else goto K2360;
01062 K2267:  if (n. check (14)) goto K2214; else goto K1521;
01063 K2277:  if (n. check (9)) goto K1558; else goto K2147;
01064 K2279:  if (n. check (10)) return false; else goto K2001;
01065 K2292:  if (n. check (19)) goto K832; else goto K1950;
01066 K2293:  if (n. check (4)) goto K1087; else goto K1861;
01067 K2296:  if (n. check (16)) return false; else goto K559;
01068 K2302:  if (n. check (19)) return false; else goto K1559;
01069 K2303:  if (n. check (6)) goto K486; else goto K1543;
01070 K2306:  if (n. check (16)) return false; else goto K2487;
01071 K2310:  if (n. check (14)) goto K1648; else goto K2232;
01072 K2312:  if (n. check (11)) goto K65; else goto K1413;
01073 K2313:  if (n. check (19)) goto K1862; else goto K1461;
01074 K2314:  if (n. check (9)) goto K137; else goto K2312;
01075 K2317:  if (n. check (7)) goto K1149; else goto K2557;
01076 K2321:  if (n. check (21)) goto K2602; else goto K49;
01077 K2341:  if (n. check (4)) return false; else goto K2084;
01078 K2343:  if (n. check (14)) return false; else goto K139;
01079 K2344:  if (n. check (9)) goto K2019; else goto K448;
01080 K2349:  if (n. check (16)) return false; else goto K843;
01081 K2350:  if (n. check (22)) goto K278; else goto K686;
01082 K2352:  if (n. check (24)) return false; else goto K52;
01083 K2360:  if (n. check (17)) goto K14; else goto K691;
01084 K2363:  if (n. check (21)) goto K39; else return true;
01085 K2365:  if (n. check (9)) goto K2041; else goto K1327;
01086 K2367:  if (n. check (7)) goto K2515; else goto K230;
01087 K2368:  if (n. check (17)) return false; else goto K350;
01088 K2371:  if (n. check (10)) goto K983; else goto K115;
01089 K2376:  if (n. check (17)) return false; else goto K154;
01090 K2377:  if (n. check (6)) goto K2321; else return false;
01091 K2381:  if (n. check (19)) goto K1559; else return false;
01092 K2386:  if (n. check (7)) goto K1824; else goto K2112;
01093 K2387:  if (n. check (19)) goto K1949; else goto K255;
01094 K2403:  if (n. check (19)) goto K2144; else goto K722;
01095 K2410:  if (n. check (17)) return true; else goto K48;
01096 K2411:  if (n. check (22)) goto K2199; else goto K2152;
01097 K2412:  if (n. check (14)) goto K1846; else goto K2293;
01098 K2415:  if (n. check (10)) goto K1423; else goto K521;
01099 K2416:  if (n. check (19)) goto K1862; else return false;
01100 K2417:  if (n. check (7)) goto K2387; else goto K2067;
01101 K2421:  if (n. check (6)) goto K486; else goto K2000;
01102 K2422:  if (n. check (7)) goto K2292; else goto K2555;
01103 K2423:  if (n. check (22)) goto K203; else return true;
01104 K2429:  if (n. check (4)) goto K1926; else goto K1664;
01105 K2434:  if (n. check (11)) goto K127; else goto K241;
01106 K2437:  if (n. check (14)) return false; else goto K238;
01107 K2451:  if (n. check (17)) goto K2585; else goto K2245;
01108 K2453:  if (n. check (10)) goto K522; else goto K741;
01109 K2460:  if (n. check (20)) goto K248; else goto K1692;
01110 K2467:  if (n. check (6)) goto K2602; else return false;
01111 K2473:  if (n. check (20)) return false; else goto K1196;
01112 K2486:  if (n. check (10)) goto K1245; else goto K2122;
01113 K2487:  if (n. check (22)) goto K1794; else goto K1798;
01114 K2490:  if (n. check (20)) goto K57; else goto K497;
01115 K2495:  if (n. check (16)) return false; else goto K2092;
01116 K2497:  if (n. check (18)) return false; else goto K49;
01117 K2515:  if (n. check (19)) return false; else goto K1067;
01118 K2533:  if (n. check (19)) goto K690; else return false;
01119 K2536:  if (n. check (14)) return false; else goto K2410;
01120 K2544:  if (n. check (18)) goto K48; else goto K49;
01121 K2555:  if (n. check (16)) return false; else goto K1527;
01122 K2557:  if (n. check (16)) return false; else goto K2403;
01123 K2570:  if (n. check (10)) goto K2412; else goto K125;
01124 K2576:  if (n. check (13)) return false; else goto K703;
01125 K2581:  if (n. check (18)) goto K198; else goto K246;
01126 K2585:  if (n. check (15)) goto K15; else return true;
01127 K2586:  if (n. check (8)) goto K1789; else goto K102;
01128 K2598:  if (n. check (5)) goto K792; else goto K494;
01129 K2602:  if (n. check (18)) goto K49; else return false;
01130 } /* acyclic3d */
01131 
01132 
01133 // --------------------------------------------------
01134 // ------------- neighborhoods for BDDs -------------
01135 // --------------------------------------------------
01136 
01138 template <class cubetype, class settype>
01139 class Neighbors
01140 {
01141 public:
01143         Neighbors (const cubetype &middle, const settype &cset,
01144                 BitField &bfield): q (middle), s (cset), b (bfield) {};
01145 
01149         bool check (int n) const
01150         {
01151                 cubetype neighbor = bit2neighbor (q, n);
01152                 if (neighbor == q)
01153                         return false;
01154                 bool result = s. check (neighbor);
01155                 if (result)
01156                         b. set (n);
01157                 return result;
01158         }
01159 
01160 private:
01162         const cubetype &q;
01163 
01165         const settype &s;
01166 
01168         BitField &b;
01169 
01170 }; /* class Neighbors */
01171 
01172 
01173 // --------------------------------------------------
01174 // ------- acyclicity verification with BDDs --------
01175 // --------------------------------------------------
01176 
01178 const int MaxBddDimPossible = 3;
01179 
01184 extern int MaxBddDim;
01185 
01189 extern bool UseMalandainCode;
01190 
01191 // --------------------------------------------------
01192 
01198 template <class tCube, class tCubeSet>
01199 bool bddacyclic (const tCube &q, int dim, const tCubeSet &s,
01200         BitField &b)
01201 {
01202         switch (dim)
01203         {
01204         case 1:
01205         {
01206                 Neighbors<tCube,tCubeSet> n (q, s, b);
01207                 return acyclic1d (n);
01208         //      break;
01209         }
01210         case 2:
01211         {
01212                 Neighbors<tCube,tCubeSet> n (q, s, b);
01213                 return acyclic2d (n);
01214         //      break;
01215         }
01216         case 3:
01217         {
01218                 Neighbors<tCube,tCubeSet> n (q, s, b);
01219                 if (UseMalandainCode)
01220                         return acyclic3d_Malandain (n);
01221                 else
01222                         return acyclic3d (n);
01223         //      break;
01224         }
01225         }
01226         throw "Trying to use a BDD for dimension other than 1-3.";
01227 } /* bddacyclic */
01228 
01229 
01230 } // namespace homology
01231 } // namespace chomp
01232 
01233 #endif // _CHOMP_HOMOLOGY_CUBACYCL_H_
01234 
01236