示例#1
0
int main(int ac,char**av)
{
  BDD a,b,c;
  bdd_init(N_NODES, CACHESIZE);
  bdd_setvarnum(2);
  a = bdd_ithvar(0);
  b = bdd_ithvar(1);  
  c = bdd_xor(a, b);
  bdd_fnprintdot("xor.dot", c);
  bdd_done();
}
示例#2
0
int main() {
bdd_init(1000000,1000000,40);
bdd_ptr v1 = ithvar(0);
bdd_ptr v4 = ithvar(1);
bdd_ptr v8 = ithvar(2);
bdd_ptr v11 = ithvar(3);
bdd_ptr v14 = ithvar(4);
bdd_ptr v17 = ithvar(5);
bdd_ptr v21 = ithvar(6);
bdd_ptr v24 = ithvar(7);
bdd_ptr v27 = ithvar(8);
bdd_ptr v30 = ithvar(9);
bdd_ptr v34 = ithvar(10);
bdd_ptr v37 = ithvar(11);
bdd_ptr v40 = ithvar(12);
bdd_ptr v43 = ithvar(13);
bdd_ptr v47 = ithvar(14);
bdd_ptr v50 = ithvar(15);
bdd_ptr v53 = ithvar(16);
bdd_ptr v56 = ithvar(17);
bdd_ptr v60 = ithvar(18);
bdd_ptr v63 = ithvar(19);
bdd_ptr v66 = ithvar(20);
bdd_ptr v69 = ithvar(21);
bdd_ptr v73 = ithvar(22);
bdd_ptr v76 = ithvar(23);
bdd_ptr v79 = ithvar(24);
bdd_ptr v82 = ithvar(25);
bdd_ptr v86 = ithvar(26);
bdd_ptr v89 = ithvar(27);
bdd_ptr v92 = ithvar(28);
bdd_ptr v95 = ithvar(29);
bdd_ptr v99 = ithvar(30);
bdd_ptr v102 = ithvar(31);
bdd_ptr v105 = ithvar(32);
bdd_ptr v108 = ithvar(33);
bdd_ptr v112 = ithvar(34);
bdd_ptr v115 = ithvar(35);
std::cout << 0 << std::endl;
bdd_ptr v118 = bdd_not(v1);
std::cout << 1 << std::endl;
bdd_ptr v119 = bdd_not(v4);
std::cout << 2 << std::endl;
bdd_ptr v122 = bdd_not(v11);
std::cout << 3 << std::endl;
bdd_ptr v123 = bdd_not(v17);
std::cout << 4 << std::endl;
bdd_ptr v126 = bdd_not(v24);
std::cout << 5 << std::endl;
bdd_ptr v127 = bdd_not(v30);
std::cout << 6 << std::endl;
bdd_ptr v130 = bdd_not(v37);
std::cout << 7 << std::endl;
bdd_ptr v131 = bdd_not(v43);
std::cout << 8 << std::endl;
bdd_ptr v134 = bdd_not(v50);
std::cout << 9 << std::endl;
bdd_ptr v135 = bdd_not(v56);
std::cout << 10 << std::endl;
bdd_ptr v138 = bdd_not(v63);
std::cout << 11 << std::endl;
bdd_ptr v139 = bdd_not(v69);
std::cout << 12 << std::endl;
bdd_ptr v142 = bdd_not(v76);
std::cout << 13 << std::endl;
bdd_ptr v143 = bdd_not(v82);
std::cout << 14 << std::endl;
bdd_ptr v146 = bdd_not(v89);
std::cout << 15 << std::endl;
bdd_ptr v147 = bdd_not(v95);
std::cout << 16 << std::endl;
bdd_ptr v150 = bdd_not(v102);
std::cout << 17 << std::endl;
bdd_ptr v151 = bdd_not(v108);
std::cout << 18 << std::endl;
bdd_ptr v154 = bdd_nand(v118,v4);
std::cout << 19 << std::endl;
bdd_ptr v157 = bdd_nor(v8,v119);
std::cout << 20 << std::endl;
bdd_ptr v158 = bdd_nor(v14,v119);
std::cout << 21 << std::endl;
bdd_ptr v159 = bdd_nand(v122,v17);
std::cout << 22 << std::endl;
bdd_ptr v162 = bdd_nand(v126,v30);
std::cout << 23 << std::endl;
bdd_ptr v165 = bdd_nand(v130,v43);
std::cout << 24 << std::endl;
bdd_ptr v168 = bdd_nand(v134,v56);
std::cout << 25 << std::endl;
bdd_ptr v171 = bdd_nand(v138,v69);
std::cout << 26 << std::endl;
bdd_ptr v174 = bdd_nand(v142,v82);
std::cout << 27 << std::endl;
bdd_ptr v177 = bdd_nand(v146,v95);
std::cout << 28 << std::endl;
bdd_ptr v180 = bdd_nand(v150,v108);
std::cout << 29 << std::endl;
bdd_ptr v183 = bdd_nor(v21,v123);
std::cout << 30 << std::endl;
bdd_ptr v184 = bdd_nor(v27,v123);
std::cout << 31 << std::endl;
bdd_ptr v185 = bdd_nor(v34,v127);
std::cout << 32 << std::endl;
bdd_ptr v186 = bdd_nor(v40,v127);
std::cout << 33 << std::endl;
bdd_ptr v187 = bdd_nor(v47,v131);
std::cout << 34 << std::endl;
bdd_ptr v188 = bdd_nor(v53,v131);
std::cout << 35 << std::endl;
bdd_ptr v189 = bdd_nor(v60,v135);
std::cout << 36 << std::endl;
bdd_ptr v190 = bdd_nor(v66,v135);
std::cout << 37 << std::endl;
bdd_ptr v191 = bdd_nor(v73,v139);
std::cout << 38 << std::endl;
bdd_ptr v192 = bdd_nor(v79,v139);
std::cout << 39 << std::endl;
bdd_ptr v193 = bdd_nor(v86,v143);
std::cout << 40 << std::endl;
bdd_ptr v194 = bdd_nor(v92,v143);
std::cout << 41 << std::endl;
bdd_ptr v195 = bdd_nor(v99,v147);
std::cout << 42 << std::endl;
bdd_ptr v196 = bdd_nor(v105,v147);
std::cout << 43 << std::endl;
bdd_ptr v197 = bdd_nor(v112,v151);
std::cout << 44 << std::endl;
bdd_ptr v198 = bdd_nor(v115,v151);
std::cout << 45 << std::endl;
bdd_ptr v199_1_0 = bdd_and(v154,v159);
bdd_ptr v199_1_2 = bdd_and(v162,v165);
bdd_ptr v199_1_4 = bdd_and(v168,v171);
bdd_ptr v199_1_6 = bdd_and(v174,v177);
bdd_ptr v199_2_0 = bdd_and(v199_1_0,v199_1_2);
bdd_ptr v199_2_4 = bdd_and(v199_1_4,v199_1_6);
bdd_ptr v199_3_0 = bdd_and(v199_2_0,v199_2_4);
bdd_ptr v199 = bdd_and(v199_3_0,v180);
std::cout << 46 << std::endl;
bdd_ptr v203 = bdd_not(v199);
std::cout << 47 << std::endl;
bdd_ptr v213 = bdd_not(v199);
std::cout << 48 << std::endl;
bdd_ptr v223 = bdd_not(v199);
std::cout << 49 << std::endl;
bdd_ptr v224 = bdd_xor(v203,v154);
std::cout << 50 << std::endl;
bdd_ptr v227 = bdd_xor(v203,v159);
std::cout << 51 << std::endl;
bdd_ptr v230 = bdd_xor(v203,v162);
std::cout << 52 << std::endl;
bdd_ptr v233 = bdd_xor(v203,v165);
std::cout << 53 << std::endl;
bdd_ptr v236 = bdd_xor(v203,v168);
std::cout << 54 << std::endl;
bdd_ptr v239 = bdd_xor(v203,v171);
std::cout << 55 << std::endl;
bdd_ptr v242 = bdd_nand(v1,v213);
std::cout << 56 << std::endl;
bdd_ptr v243 = bdd_xor(v203,v174);
std::cout << 57 << std::endl;
bdd_ptr v246 = bdd_nand(v213,v11);
std::cout << 58 << std::endl;
bdd_ptr v247 = bdd_xor(v203,v177);
std::cout << 59 << std::endl;
bdd_ptr v250 = bdd_nand(v213,v24);
std::cout << 60 << std::endl;
bdd_ptr v251 = bdd_xor(v203,v180);
std::cout << 61 << std::endl;
bdd_ptr v254 = bdd_nand(v213,v37);
std::cout << 62 << std::endl;
bdd_ptr v255 = bdd_nand(v213,v50);
std::cout << 63 << std::endl;
bdd_ptr v256 = bdd_nand(v213,v63);
std::cout << 64 << std::endl;
bdd_ptr v257 = bdd_nand(v213,v76);
std::cout << 65 << std::endl;
bdd_ptr v258 = bdd_nand(v213,v89);
std::cout << 66 << std::endl;
bdd_ptr v259 = bdd_nand(v213,v102);
std::cout << 67 << std::endl;
bdd_ptr v260 = bdd_nand(v224,v157);
std::cout << 68 << std::endl;
bdd_ptr v263 = bdd_nand(v224,v158);
std::cout << 69 << std::endl;
bdd_ptr v264 = bdd_nand(v227,v183);
std::cout << 70 << std::endl;
bdd_ptr v267 = bdd_nand(v230,v185);
std::cout << 71 << std::endl;
bdd_ptr v270 = bdd_nand(v233,v187);
std::cout << 72 << std::endl;
bdd_ptr v273 = bdd_nand(v236,v189);
std::cout << 73 << std::endl;
bdd_ptr v276 = bdd_nand(v239,v191);
std::cout << 74 << std::endl;
bdd_ptr v279 = bdd_nand(v243,v193);
std::cout << 75 << std::endl;
bdd_ptr v282 = bdd_nand(v247,v195);
std::cout << 76 << std::endl;
bdd_ptr v285 = bdd_nand(v251,v197);
std::cout << 77 << std::endl;
bdd_ptr v288 = bdd_nand(v227,v184);
std::cout << 78 << std::endl;
bdd_ptr v289 = bdd_nand(v230,v186);
std::cout << 79 << std::endl;
bdd_ptr v290 = bdd_nand(v233,v188);
std::cout << 80 << std::endl;
bdd_ptr v291 = bdd_nand(v236,v190);
std::cout << 81 << std::endl;
bdd_ptr v292 = bdd_nand(v239,v192);
std::cout << 82 << std::endl;
bdd_ptr v293 = bdd_nand(v243,v194);
std::cout << 83 << std::endl;
bdd_ptr v294 = bdd_nand(v247,v196);
std::cout << 84 << std::endl;
bdd_ptr v295 = bdd_nand(v251,v198);
std::cout << 85 << std::endl;
bdd_ptr v296_1_0 = bdd_and(v260,v264);
bdd_ptr v296_1_2 = bdd_and(v267,v270);
bdd_ptr v296_1_4 = bdd_and(v273,v276);
bdd_ptr v296_1_6 = bdd_and(v279,v282);
bdd_ptr v296_2_0 = bdd_and(v296_1_0,v296_1_2);
bdd_ptr v296_2_4 = bdd_and(v296_1_4,v296_1_6);
bdd_ptr v296_3_0 = bdd_and(v296_2_0,v296_2_4);
bdd_ptr v296 = bdd_and(v296_3_0,v285);
std::cout << 86 << std::endl;
bdd_ptr v300 = bdd_not(v263);
std::cout << 87 << std::endl;
bdd_ptr v301 = bdd_not(v288);
std::cout << 88 << std::endl;
bdd_ptr v302 = bdd_not(v289);
std::cout << 89 << std::endl;
bdd_ptr v303 = bdd_not(v290);
std::cout << 90 << std::endl;
bdd_ptr v304 = bdd_not(v291);
std::cout << 91 << std::endl;
bdd_ptr v305 = bdd_not(v292);
std::cout << 92 << std::endl;
bdd_ptr v306 = bdd_not(v293);
std::cout << 93 << std::endl;
bdd_ptr v307 = bdd_not(v294);
std::cout << 94 << std::endl;
bdd_ptr v308 = bdd_not(v295);
std::cout << 95 << std::endl;
bdd_ptr v309 = bdd_not(v296);
std::cout << 96 << std::endl;
bdd_ptr v319 = bdd_not(v296);
std::cout << 97 << std::endl;
bdd_ptr v329 = bdd_not(v296);
std::cout << 98 << std::endl;
bdd_ptr v330 = bdd_xor(v309,v260);
std::cout << 99 << std::endl;
bdd_ptr v331 = bdd_xor(v309,v264);
std::cout << 100 << std::endl;
bdd_ptr v332 = bdd_xor(v309,v267);
std::cout << 101 << std::endl;
bdd_ptr v333 = bdd_xor(v309,v270);
std::cout << 102 << std::endl;
bdd_ptr v334 = bdd_nand(v8,v319);
std::cout << 103 << std::endl;
bdd_ptr v335 = bdd_xor(v309,v273);
std::cout << 104 << std::endl;
bdd_ptr v336 = bdd_nand(v319,v21);
std::cout << 105 << std::endl;
bdd_ptr v337 = bdd_xor(v309,v276);
std::cout << 106 << std::endl;
bdd_ptr v338 = bdd_nand(v319,v34);
std::cout << 107 << std::endl;
bdd_ptr v339 = bdd_xor(v309,v279);
std::cout << 108 << std::endl;
bdd_ptr v340 = bdd_nand(v319,v47);
std::cout << 109 << std::endl;
bdd_ptr v341 = bdd_xor(v309,v282);
std::cout << 110 << std::endl;
bdd_ptr v342 = bdd_nand(v319,v60);
std::cout << 111 << std::endl;
bdd_ptr v343 = bdd_xor(v309,v285);
std::cout << 112 << std::endl;
bdd_ptr v344 = bdd_nand(v319,v73);
std::cout << 113 << std::endl;
bdd_ptr v345 = bdd_nand(v319,v86);
std::cout << 114 << std::endl;
bdd_ptr v346 = bdd_nand(v319,v99);
std::cout << 115 << std::endl;
bdd_ptr v347 = bdd_nand(v319,v112);
std::cout << 116 << std::endl;
bdd_ptr v348 = bdd_nand(v330,v300);
std::cout << 117 << std::endl;
bdd_ptr v349 = bdd_nand(v331,v301);
std::cout << 118 << std::endl;
bdd_ptr v350 = bdd_nand(v332,v302);
std::cout << 119 << std::endl;
bdd_ptr v351 = bdd_nand(v333,v303);
std::cout << 120 << std::endl;
bdd_ptr v352 = bdd_nand(v335,v304);
std::cout << 121 << std::endl;
bdd_ptr v353 = bdd_nand(v337,v305);
std::cout << 122 << std::endl;
bdd_ptr v354 = bdd_nand(v339,v306);
std::cout << 123 << std::endl;
bdd_ptr v355 = bdd_nand(v341,v307);
std::cout << 124 << std::endl;
bdd_ptr v356 = bdd_nand(v343,v308);
std::cout << 125 << std::endl;
bdd_ptr v357_1_0 = bdd_and(v348,v349);
bdd_ptr v357_1_2 = bdd_and(v350,v351);
bdd_ptr v357_1_4 = bdd_and(v352,v353);
bdd_ptr v357_1_6 = bdd_and(v354,v355);
bdd_ptr v357_2_0 = bdd_and(v357_1_0,v357_1_2);
bdd_ptr v357_2_4 = bdd_and(v357_1_4,v357_1_6);
bdd_ptr v357_3_0 = bdd_and(v357_2_0,v357_2_4);
bdd_ptr v357 = bdd_and(v357_3_0,v356);
std::cout << 126 << std::endl;
bdd_ptr v360 = bdd_not(v357);
std::cout << 127 << std::endl;
bdd_ptr v370 = bdd_not(v357);
std::cout << 128 << std::endl;
bdd_ptr v371 = bdd_nand(v14,v360);
std::cout << 129 << std::endl;
bdd_ptr v372 = bdd_nand(v360,v27);
std::cout << 130 << std::endl;
bdd_ptr v373 = bdd_nand(v360,v40);
std::cout << 131 << std::endl;
bdd_ptr v374 = bdd_nand(v360,v53);
std::cout << 132 << std::endl;
bdd_ptr v375 = bdd_nand(v360,v66);
std::cout << 133 << std::endl;
bdd_ptr v376 = bdd_nand(v360,v79);
std::cout << 134 << std::endl;
bdd_ptr v377 = bdd_nand(v360,v92);
std::cout << 135 << std::endl;
bdd_ptr v378 = bdd_nand(v360,v105);
std::cout << 136 << std::endl;
bdd_ptr v379 = bdd_nand(v360,v115);
std::cout << 137 << std::endl;
bdd_ptr v380_1_0 = bdd_nand(v4,v242);
bdd_ptr v380_1_2 = bdd_nand(v334,v371);
bdd_ptr v380 = bdd_nand(v380_1_0,v380_1_2);
std::cout << 138 << std::endl;
bdd_ptr v381_1_0 = bdd_nand(v246,v336);
bdd_ptr v381_1_2 = bdd_nand(v372,v17);
bdd_ptr v381 = bdd_nand(v381_1_0,v381_1_2);
std::cout << 139 << std::endl;
bdd_ptr v386_1_0 = bdd_nand(v250,v338);
bdd_ptr v386_1_2 = bdd_nand(v373,v30);
bdd_ptr v386 = bdd_nand(v386_1_0,v386_1_2);
std::cout << 140 << std::endl;
bdd_ptr v393_1_0 = bdd_nand(v254,v340);
bdd_ptr v393_1_2 = bdd_nand(v374,v43);
bdd_ptr v393 = bdd_nand(v393_1_0,v393_1_2);
std::cout << 141 << std::endl;
bdd_ptr v399_1_0 = bdd_nand(v255,v342);
bdd_ptr v399_1_2 = bdd_nand(v375,v56);
bdd_ptr v399 = bdd_nand(v399_1_0,v399_1_2);
std::cout << 142 << std::endl;
bdd_ptr v404_1_0 = bdd_nand(v256,v344);
bdd_ptr v404_1_2 = bdd_nand(v376,v69);
bdd_ptr v404 = bdd_nand(v404_1_0,v404_1_2);
std::cout << 143 << std::endl;
bdd_ptr v407_1_0 = bdd_nand(v257,v345);
bdd_ptr v407_1_2 = bdd_nand(v377,v82);
bdd_ptr v407 = bdd_nand(v407_1_0,v407_1_2);
std::cout << 144 << std::endl;
bdd_ptr v411_1_0 = bdd_nand(v258,v346);
bdd_ptr v411_1_2 = bdd_nand(v378,v95);
bdd_ptr v411 = bdd_nand(v411_1_0,v411_1_2);
std::cout << 145 << std::endl;
bdd_ptr v414_1_0 = bdd_nand(v259,v347);
bdd_ptr v414_1_2 = bdd_nand(v379,v108);
bdd_ptr v414 = bdd_nand(v414_1_0,v414_1_2);
std::cout << 146 << std::endl;
bdd_ptr v415 = bdd_not(v380);
std::cout << 147 << std::endl;
bdd_ptr v416_1_0 = bdd_and(v381,v386);
bdd_ptr v416_1_2 = bdd_and(v393,v399);
bdd_ptr v416_1_4 = bdd_and(v404,v407);
bdd_ptr v416_1_6 = bdd_and(v411,v414);
bdd_ptr v416_2_0 = bdd_and(v416_1_0,v416_1_2);
bdd_ptr v416_2_4 = bdd_and(v416_1_4,v416_1_6);
bdd_ptr v416 = bdd_and(v416_2_0,v416_2_4);
std::cout << 148 << std::endl;
bdd_ptr v417 = bdd_not(v393);
std::cout << 149 << std::endl;
bdd_ptr v418 = bdd_not(v404);
std::cout << 150 << std::endl;
bdd_ptr v419 = bdd_not(v407);
std::cout << 151 << std::endl;
bdd_ptr v420 = bdd_not(v411);
std::cout << 152 << std::endl;
bdd_ptr v421 = bdd_nor(v415,v416);
std::cout << 153 << std::endl;
bdd_ptr v422 = bdd_nand(v386,v417);
std::cout << 154 << std::endl;
bdd_ptr v425_1_0 = bdd_nand(v386,v393);
bdd_ptr v425_1_2 = bdd_nand(v418,v399);
bdd_ptr v425 = bdd_nand(v425_1_0,v425_1_2);
std::cout << 155 << std::endl;
bdd_ptr v428_1_0 = bdd_nand(v399,v393);
bdd_ptr v428 = bdd_nand(v428_1_0,v419);
std::cout << 156 << std::endl;
bdd_ptr v429_1_0 = bdd_nand(v386,v393);
bdd_ptr v429_1_2 = bdd_nand(v407,v420);
bdd_ptr v429 = bdd_nand(v429_1_0,v429_1_2);
std::cout << 157 << std::endl;
bdd_ptr v430_1_0 = bdd_nand(v381,v386);
bdd_ptr v430_1_2 = bdd_nand(v422,v399);
bdd_ptr v430 = bdd_nand(v430_1_0,v430_1_2);
std::cout << 158 << std::endl;
bdd_ptr v431_1_0 = bdd_nand(v381,v386);
bdd_ptr v431_1_2 = bdd_nand(v425,v428);
bdd_ptr v431 = bdd_nand(v431_1_0,v431_1_2);
std::cout << 159 << std::endl;
bdd_ptr v432_1_0 = bdd_nand(v381,v422);
bdd_ptr v432_1_2 = bdd_nand(v425,v429);
bdd_ptr v432 = bdd_nand(v432_1_0,v432_1_2);
return 0;
}