test.out 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653
  1. Entering testBdd
  2. f: 3 nodes 1 leaves 1 minterms
  3. 11 1
  4. g: 3 nodes 1 leaves 3 minterms
  5. 0- 1
  6. 11 1
  7. f and g are not complementary
  8. f is less than or equal to g
  9. g: 2 nodes 1 leaves 2 minterms
  10. 1- 1
  11. h: 2 nodes 1 leaves 2 minterms
  12. -1 1
  13. x + h has 3 nodes
  14. h: 3 nodes 1 leaves 3 minterms
  15. 01 1
  16. 1- 1
  17. Entering testAdd
  18. r: 6 nodes 3 leaves 3 minterms
  19. 01 1
  20. 10 1
  21. 11 2
  22. s: 4 nodes 2 leaves 1 minterms
  23. 11 3
  24. s: 1 nodes 1 leaves 4 minterms
  25. -- inf
  26. p is less than or equal to r
  27. r: 4 nodes 2 leaves 3 minterms
  28. 01 1
  29. 1- 1
  30. Entering testAdd2
  31. f: 7 nodes 4 leaves 4 minterms
  32. 00 0.1
  33. 01 0.2
  34. 10 0.3
  35. 11 0.4
  36. l: 7 nodes 4 leaves 4 minterms
  37. 00 -2.30259
  38. 01 -1.60944
  39. 10 -1.20397
  40. 11 -0.916291
  41. r: 7 nodes 4 leaves 4 minterms
  42. 00 -0.230259
  43. 01 -0.321888
  44. 10 -0.361192
  45. 11 -0.366516
  46. e: 1 nodes 1 leaves 4 minterms
  47. -- 1.84644
  48. Entering testZdd
  49. s: 3 nodes 3 minterms
  50. 1- 1
  51. 01 1
  52. v is less than s
  53. s: 1 nodes 1 minterms
  54. 01 1
  55. Entering testBdd2
  56. f: 7 nodes 1 leaves 7 minterms
  57. 01-1 1
  58. 101- 1
  59. 1101 1
  60. 111- 1
  61. Irredundant cover of f:
  62. 1-1- 1
  63. -1-1 1
  64. Number of minterms (arbitrary precision): 7
  65. Number of minterms (extended precision): 7.000000e+00
  66. Two-literal clauses of f:
  67. x2 | x3
  68. x1 | x2
  69. x0 | x3
  70. x0 | x1
  71. vect[0]
  72. 1--- 1
  73. vect[1]
  74. 0--- 1
  75. -1-- 1
  76. vect[2]
  77. 10-- 1
  78. --1- 1
  79. vect[3]
  80. 0--- 1
  81. -10- 1
  82. ---1 1
  83. digraph "DD" {
  84. size = "7.5,10"
  85. center = true;
  86. edge [dir = none];
  87. { node [shape = plaintext];
  88. edge [style = invis];
  89. "CONST NODES" [style = invis];
  90. " x0 " -> " x1 " -> " x2 " -> " x3 " -> "CONST NODES";
  91. }
  92. { rank = same; node [shape = box]; edge [style = invis];
  93. " v0 " -> " v1 " -> " v2 " -> " v3 "; }
  94. { rank = same; " x0 ";
  95. "0x1d";
  96. "0x5d";
  97. "0x5a";
  98. "0x19";
  99. }
  100. { rank = same; " x1 ";
  101. "0x59";
  102. "0x5c";
  103. "0x1a";
  104. }
  105. { rank = same; " x2 ";
  106. "0x4a";
  107. "0x5b";
  108. }
  109. { rank = same; " x3 ";
  110. "0x4b";
  111. }
  112. { rank = same; "CONST NODES";
  113. { node [shape = box]; "0x13";
  114. }
  115. }
  116. " v0 " -> "0x19" [style = solid];
  117. " v1 " -> "0x1d" [style = solid];
  118. " v2 " -> "0x5a" [style = solid];
  119. " v3 " -> "0x5d" [style = solid];
  120. "0x1d" -> "0x1a";
  121. "0x1d" -> "0x13" [style = dashed];
  122. "0x5d" -> "0x5c";
  123. "0x5d" -> "0x13" [style = dashed];
  124. "0x5a" -> "0x59";
  125. "0x5a" -> "0x4a" [style = dashed];
  126. "0x19" -> "0x13";
  127. "0x19" -> "0x13" [style = dotted];
  128. "0x59" -> "0x4a";
  129. "0x59" -> "0x13" [style = dashed];
  130. "0x5c" -> "0x5b";
  131. "0x5c" -> "0x4b" [style = dashed];
  132. "0x1a" -> "0x13";
  133. "0x1a" -> "0x13" [style = dotted];
  134. "0x4a" -> "0x13";
  135. "0x4a" -> "0x13" [style = dotted];
  136. "0x5b" -> "0x4b";
  137. "0x5b" -> "0x13" [style = dashed];
  138. "0x4b" -> "0x13";
  139. "0x4b" -> "0x13" [style = dotted];
  140. "0x13" [label = "1"];
  141. }
  142. Entering testBdd3
  143. f: 10 nodes 1 leaves 50 minterms
  144. 0-0-0- 1
  145. 0-0-10 1
  146. 0-100- 1
  147. 0-1010 1
  148. 0-11-- 1
  149. 10-00- 1
  150. 10-010 1
  151. 10-1-- 1
  152. 11000- 1
  153. 110010 1
  154. 1101-- 1
  155. 1110-1 1
  156. 111101 1
  157. f1: 5 nodes 1 leaves 36 minterms
  158. 0---0- 1
  159. 0---10 1
  160. 10--0- 1
  161. 10--10 1
  162. f1 is less than or equal to f
  163. g: 6 nodes 1 leaves 62 minterms
  164. 0----- 1
  165. 10---- 1
  166. 110--- 1
  167. 1110-- 1
  168. 11110- 1
  169. h: 8 nodes 1 leaves 51 minterms
  170. 0-0-0- 1
  171. 0-0-10 1
  172. 0-100- 1
  173. 0-1010 1
  174. 0-11-- 1
  175. 10-00- 1
  176. 10-010 1
  177. 10-1-- 1
  178. 11000- 1
  179. 110010 1
  180. 1101-- 1
  181. 111--1 1
  182. g * h == f
  183. Entering testZdd2
  184. p[0]: 3 nodes 1 leaves 64 minterms
  185. ----0-0 1
  186. ----1-1 1
  187. p[1]: 5 nodes 1 leaves 64 minterms
  188. --0-0-0 1
  189. --0-10- 1
  190. --1-0-1 1
  191. --1-11- 1
  192. p[2]: 7 nodes 1 leaves 64 minterms
  193. 0-0-0-0 1
  194. 0-0-10- 1
  195. 0-10--- 1
  196. 1-0-0-1 1
  197. 1-0-11- 1
  198. 1-11--- 1
  199. p[3]: 8 nodes 1 leaves 64 minterms
  200. 0-0-0-1 1
  201. 0-0-11- 1
  202. 0-11--- 1
  203. 11----- 1
  204. digraph "DD" {
  205. size = "7.5,10"
  206. center = true;
  207. edge [dir = none];
  208. { node [shape = plaintext];
  209. edge [style = invis];
  210. "CONST NODES" [style = invis];
  211. " a2 " -> " b2 " -> " a1 " -> " b1 " -> " a0 " -> " b0 " -> " c0 " -> "CONST NODES";
  212. }
  213. { rank = same; node [shape = box]; edge [style = invis];
  214. " s0 " -> " s1 " -> " s2 " -> " c3 "; }
  215. { rank = same; " a2 ";
  216. "0x494";
  217. "0x493";
  218. }
  219. { rank = same; " b2 ";
  220. "0x41a";
  221. }
  222. { rank = same; " a1 ";
  223. "0x491";
  224. "0x492";
  225. }
  226. { rank = same; " b1 ";
  227. "0x44b";
  228. }
  229. { rank = same; " a0 ";
  230. "0x490";
  231. "0x48f";
  232. }
  233. { rank = same; " b0 ";
  234. "0x46a";
  235. }
  236. { rank = same; " c0 ";
  237. "0x48e";
  238. }
  239. { rank = same; "CONST NODES";
  240. { node [shape = box]; "0x413";
  241. }
  242. }
  243. " s0 " -> "0x48f" [style = solid];
  244. " s1 " -> "0x491" [style = solid];
  245. " s2 " -> "0x493" [style = solid];
  246. " c3 " -> "0x494" [style = solid];
  247. "0x494" -> "0x41a";
  248. "0x494" -> "0x492" [style = dashed];
  249. "0x493" -> "0x492";
  250. "0x493" -> "0x492" [style = dotted];
  251. "0x41a" -> "0x413";
  252. "0x41a" -> "0x413" [style = dotted];
  253. "0x491" -> "0x490";
  254. "0x491" -> "0x490" [style = dotted];
  255. "0x492" -> "0x44b";
  256. "0x492" -> "0x490" [style = dashed];
  257. "0x44b" -> "0x413";
  258. "0x44b" -> "0x413" [style = dotted];
  259. "0x490" -> "0x46a";
  260. "0x490" -> "0x48e" [style = dashed];
  261. "0x48f" -> "0x48e";
  262. "0x48f" -> "0x48e" [style = dotted];
  263. "0x46a" -> "0x413";
  264. "0x46a" -> "0x413" [style = dotted];
  265. "0x48e" -> "0x413";
  266. "0x48e" -> "0x413" [style = dotted];
  267. "0x413" [label = "1"];
  268. }
  269. z[0]: 4 nodes 2 minterms
  270. 00000000100010 1
  271. 00000000010001 1
  272. z[1]: 10 nodes 4 minterms
  273. 00001000101000 1
  274. 00001000010010 1
  275. 00000100100100 1
  276. 00000100010001 1
  277. z[2]: 16 nodes 6 minterms
  278. 10001010000000 1
  279. 10000100101000 1
  280. 10000100010010 1
  281. 01001001000000 1
  282. 01000100100100 1
  283. 01000100010001 1
  284. z[3]: 10 nodes 4 minterms
  285. 10100000000000 1
  286. 01001010000000 1
  287. 01000100101000 1
  288. 01000100010010 1
  289. z[0]
  290. ----1-1 1
  291. ----0-0 1
  292. z[0]
  293. ----0-0 1
  294. ----1-1 1
  295. z[1]
  296. --1-11- 1
  297. --1-0-1 1
  298. --0-10- 1
  299. --0-0-0 1
  300. z[1]
  301. --0-0-0 1
  302. --0-10- 1
  303. --1-0-1 1
  304. --1-11- 1
  305. z[2]
  306. 1-11--- 1
  307. 1-0-11- 1
  308. 1-0-0-1 1
  309. 0-10--- 1
  310. 0-0-10- 1
  311. 0-0-0-0 1
  312. z[2]
  313. 0-0-0-0 1
  314. 0-0-10- 1
  315. 0-10--- 1
  316. 1-0-0-1 1
  317. 1-0-11- 1
  318. 1-11--- 1
  319. z[3]
  320. 11----- 1
  321. 0-11--- 1
  322. 0-0-11- 1
  323. 0-0-0-1 1
  324. z[3]
  325. 0-0-0-1 1
  326. 0-0-11- 1
  327. 0-11--- 1
  328. 11----- 1
  329. digraph "ZDD" {
  330. size = "7.5,10"
  331. center = true;
  332. edge [dir = none];
  333. { node [shape = plaintext];
  334. edge [style = invis];
  335. "CONST NODES" [style = invis];
  336. " a2+ " -> " a2- " -> " b2+ " -> " a1+ " -> " a1- " -> " b1+ " -> " b1- " -> " a0+ " -> " a0- " -> " b0+ " -> " b0- " -> " c0+ " -> " c0- " -> "CONST NODES";
  337. }
  338. { rank = same; node [shape = box]; edge [style = invis];
  339. " s0 " -> " s1 " -> " s2 " -> " c3 "; }
  340. { rank = same; " a2+ ";
  341. "0x56";
  342. "0x4d";
  343. }
  344. { rank = same; " a2- ";
  345. "0x54";
  346. "0x49";
  347. }
  348. { rank = same; " b2+ ";
  349. "0x50";
  350. }
  351. { rank = same; " a1+ ";
  352. "0x44";
  353. "0x36";
  354. "0x3d";
  355. }
  356. { rank = same; " a1- ";
  357. "0x34";
  358. "0x42";
  359. }
  360. { rank = same; " b1+ ";
  361. "0x3e";
  362. }
  363. { rank = same; " b1- ";
  364. "0x39";
  365. }
  366. { rank = same; " a0+ ";
  367. "0x2f";
  368. "0x21";
  369. "0x28";
  370. }
  371. { rank = same; " a0- ";
  372. "0x2d";
  373. "0x1f";
  374. }
  375. { rank = same; " b0+ ";
  376. "0x29";
  377. }
  378. { rank = same; " b0- ";
  379. "0x24";
  380. }
  381. { rank = same; " c0+ ";
  382. "0x18";
  383. }
  384. { rank = same; " c0- ";
  385. "0x17";
  386. }
  387. { rank = same; "CONST NODES";
  388. { node [shape = box]; "0x14";
  389. "0x13";
  390. }
  391. }
  392. " s0 " -> "0x21" [style = solid];
  393. " s1 " -> "0x36" [style = solid];
  394. " s2 " -> "0x4d" [style = solid];
  395. " c3 " -> "0x56" [style = solid];
  396. "0x56" -> "0x50";
  397. "0x56" -> "0x54" [style = dashed];
  398. "0x4d" -> "0x44";
  399. "0x4d" -> "0x49" [style = dashed];
  400. "0x54" -> "0x44";
  401. "0x54" -> "0x14" [style = dashed];
  402. "0x49" -> "0x3d";
  403. "0x49" -> "0x14" [style = dashed];
  404. "0x50" -> "0x13";
  405. "0x50" -> "0x14" [style = dashed];
  406. "0x44" -> "0x3e";
  407. "0x44" -> "0x42" [style = dashed];
  408. "0x36" -> "0x2f";
  409. "0x36" -> "0x34" [style = dashed];
  410. "0x3d" -> "0x39";
  411. "0x3d" -> "0x34" [style = dashed];
  412. "0x34" -> "0x28";
  413. "0x34" -> "0x14" [style = dashed];
  414. "0x42" -> "0x2f";
  415. "0x42" -> "0x14" [style = dashed];
  416. "0x3e" -> "0x13";
  417. "0x3e" -> "0x14" [style = dashed];
  418. "0x39" -> "0x13";
  419. "0x39" -> "0x14" [style = dashed];
  420. "0x2f" -> "0x29";
  421. "0x2f" -> "0x2d" [style = dashed];
  422. "0x21" -> "0x18";
  423. "0x21" -> "0x1f" [style = dashed];
  424. "0x28" -> "0x24";
  425. "0x28" -> "0x1f" [style = dashed];
  426. "0x2d" -> "0x18";
  427. "0x2d" -> "0x14" [style = dashed];
  428. "0x1f" -> "0x17";
  429. "0x1f" -> "0x14" [style = dashed];
  430. "0x29" -> "0x13";
  431. "0x29" -> "0x14" [style = dashed];
  432. "0x24" -> "0x13";
  433. "0x24" -> "0x14" [style = dashed];
  434. "0x18" -> "0x13";
  435. "0x18" -> "0x14" [style = dashed];
  436. "0x17" -> "0x13";
  437. "0x17" -> "0x14" [style = dashed];
  438. "0x14" [label = "0"];
  439. "0x13" [label = "1"];
  440. }
  441. Entering testBdd4
  442. f: 5 nodes 1 leaves 3 minterms
  443. 000----------- 1
  444. 11------------ 1
  445. g: 5 nodes 1 leaves 3 minterms
  446. 000 1
  447. 11- 1
  448. f and h are identical
  449. Entering testBdd5
  450. digraph "DD" {
  451. size = "7.5,10"
  452. center = true;
  453. edge [dir = none];
  454. { node [shape = plaintext];
  455. edge [style = invis];
  456. "CONST NODES" [style = invis];
  457. " a " -> " b " -> " c " -> " d " -> "CONST NODES";
  458. }
  459. { rank = same; node [shape = box]; edge [style = invis];
  460. " lb " -> " ub " -> " f " -> " primes " -> " lprime "; }
  461. { rank = same; " a ";
  462. "0x487";
  463. }
  464. { rank = same; " b ";
  465. "0x484";
  466. "0x486";
  467. "0x483";
  468. "0x488";
  469. }
  470. { rank = same; " c ";
  471. "0x481";
  472. "0x43b";
  473. }
  474. { rank = same; " d ";
  475. "0x44b";
  476. }
  477. { rank = same; "CONST NODES";
  478. { node [shape = box]; "0x413";
  479. }
  480. }
  481. " lb " -> "0x488" [style = dotted];
  482. " ub " -> "0x44b" [style = solid];
  483. " f " -> "0x487" [style = solid];
  484. " primes " -> "0x483" [style = solid];
  485. " lprime " -> "0x483" [style = solid];
  486. "0x487" -> "0x484";
  487. "0x487" -> "0x486" [style = dashed];
  488. "0x484" -> "0x44b";
  489. "0x484" -> "0x481" [style = dotted];
  490. "0x486" -> "0x43b";
  491. "0x486" -> "0x413" [style = dotted];
  492. "0x483" -> "0x44b";
  493. "0x483" -> "0x413" [style = dotted];
  494. "0x488" -> "0x481";
  495. "0x488" -> "0x413" [style = dashed];
  496. "0x481" -> "0x413";
  497. "0x481" -> "0x44b" [style = dotted];
  498. "0x43b" -> "0x44b";
  499. "0x43b" -> "0x413" [style = dashed];
  500. "0x44b" -> "0x413";
  501. "0x44b" -> "0x413" [style = dotted];
  502. "0x413" [label = "1"];
  503. }
  504. primes(1): 3 nodes 1 leaves 4 minterms
  505. -1-1---------- 1
  506. primes(2): is the zero DD
  507. primes(3): 4 nodes 1 leaves 2 minterms
  508. 1-01---------- 1
  509. primes(4): 6 nodes 1 leaves 5 minterms
  510. -1-1---------- 1
  511. 010----------- 1
  512. primes(5): 4 nodes 1 leaves 2 minterms
  513. 01-1---------- 1
  514. l1: 7 nodes 1 leaves 3 minterms
  515. 0111---------- 1
  516. 111----------- 1
  517. u1: 4 nodes 1 leaves 8 minterms
  518. 000----------- 1
  519. 011----------- 1
  520. 1-1----------- 1
  521. interpolant1: 4 nodes 1 leaves 6 minterms
  522. 011----------- 1
  523. 1-1----------- 1
  524. l2: 7 nodes 1 leaves 5 minterms
  525. 001----------- 1
  526. 0110---------- 1
  527. 101----------- 1
  528. u2: 5 nodes 1 leaves 8 minterms
  529. -000---------- 1
  530. -01----------- 1
  531. -110---------- 1
  532. interpolant2: 5 nodes 1 leaves 6 minterms
  533. -01----------- 1
  534. -110---------- 1
  535. l3: 4 nodes 1 leaves 2 minterms
  536. 00-1---------- 1
  537. u3: 3 nodes 1 leaves 4 minterms
  538. -0-1---------- 1
  539. interpolant3: 3 nodes 1 leaves 4 minterms
  540. -0-1---------- 1
  541. Entering testErrorHandling
  542. Oops! Caught: empty DD.
  543. Caught: Invalid argument.
  544. f = var[1] | (var[2] & var[3])
  545. var[0] | var[1] is not a cube
  546. Cudd_Cofactor: Invalid restriction 2
  547. Caught: Invalid argument.
  548. f : 511 nodes 1 leaves 115422332637413376 minterms
  549. g : 511 nodes 1 leaves 115422332637413376 minterms
  550. h Caught: empty DD.
  551. f : 88 nodes 1 leaves 226007109 minterms
  552. g : 91 nodes 1 leaves 3143500301 minterms
  553. h : 142 nodes 1 leaves 2917493192 minterms
  554. Caught: Maximum memory exceeded.
  555. Caught: Timeout expired. Lag = 29 ms.
  556. **** CUDD modifiable parameters ****
  557. Hard limit for cache size: 2796202
  558. Cache hit threshold for resizing: 30%
  559. Garbage collection enabled: yes
  560. Limit for fast unique table growth: 1677721
  561. Maximum number of variables sifted per reordering: 1000
  562. Maximum number of variable swaps per reordering: 2000000
  563. Maximum growth while sifting a variable: 1.2
  564. Dynamic reordering of BDDs enabled: no
  565. Default BDD reordering method: 4
  566. Dynamic reordering of ZDDs enabled: no
  567. Default ZDD reordering method: 4
  568. Realignment of ZDDs to BDDs enabled: no
  569. Realignment of BDDs to ZDDs enabled: no
  570. Dead nodes counted in triggering reordering: no
  571. Group checking criterion: 7
  572. Recombination threshold: 0
  573. Symmetry violation threshold: 0
  574. Arc violation threshold: 0
  575. GA population size: 0
  576. Number of crossovers for GA: 0
  577. Next reordering threshold: 4004
  578. **** CUDD non-modifiable parameters ****
  579. Memory in use: 146651968
  580. Peak number of nodes: 2044
  581. Peak number of live nodes: 2030
  582. Number of BDD variables: 60
  583. Number of ZDD variables: 14
  584. Number of cache entries: 524288
  585. Number of cache look-ups: 5326
  586. Number of cache hits: 1226
  587. Number of cache insertions: 4217
  588. Number of cache collisions: 16
  589. Number of cache deletions: 2300
  590. Cache used slots = 0.39% (expected 0.39%)
  591. Soft limit for cache size: 76800
  592. Number of buckets in unique table: 19200
  593. Used buckets in unique table: 9.11% (expected 8.95%)
  594. Number of BDD and ADD nodes: 3789
  595. Number of ZDD nodes: 14
  596. Number of dead BDD and ADD nodes: 3725
  597. Number of dead ZDD nodes: 0
  598. Total number of nodes allocated: 6011
  599. Total number of nodes reclaimed: 154
  600. Garbage collections so far: 3
  601. Time for garbage collection: 0.00 sec
  602. Reorderings so far: 0
  603. Time for reordering: 0.00 sec