[請益] 卡關超久的f^g和~a|~b Q_Q

看板EE_DSnP作者 (我/我/我)時間16年前 (2010/01/16 23:16), 編輯推噓4(4018)
留言22則, 4人參與, 最新討論串1/1
已經de了快要6小時的bug,盯著ddd的我已經眼花了還是看不出所以然的f^g和~a|~b... 狀況是這樣的,我的leftCofactor和rightCofactor寫法類似,都是先看level大小, 然後決定需不需要call小孩,然後我沒有去管neg edge的東西... testBdd的前三個都順利過關,但是後兩個發生問題,結果如下: f^g [4](+) 0x9c04e98 (2) [0](+) 0x9bec288 (15) [3](+) 0x9c04df8 (3) [0](+) 0x9bec288 (15) (*) [0](-) 0x9bec288 (15) (*) ==> Total #BddNodes: 3 ~a|~b [2](+) 0x9c04ea8 (1) [0](+) 0x9bec288 (16) [1](-) 0x9c04da8 (4) [0](+) 0x9bec288 (16) (*) [0](-) 0x9bec288 (16) (*) ==> Total #BddNodes: 3 沒有頭緒...可以請大家幫個忙看一下嗎? 說實話我已經不知道該怎麼做了orz -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.216.45

01/16 23:18, , 1F
妳可以先看看2553篇...
01/16 23:18, 1F

01/16 23:20, , 2F
呃對了我還沒寫standardize(就卡住了...QQ)
01/16 23:20, 2F

01/16 23:21, , 3F
那2153篇..?
01/16 23:21, 3F

01/16 23:22, , 4F
請問您的getCofactor()s有管bubble嗎??
01/16 23:22, 4F

01/16 23:24, , 5F
可以看看#1AGAKx8g 你的xor好像長的跟他一樣XD
01/16 23:24, 5F

01/16 23:24, , 6F
而我當初也是同一個問題XD
01/16 23:24, 6F

01/16 23:25, , 7F
呃沒有耶...我完全沒做check isNegEdge之類的事情說...
01/16 23:25, 7F

01/16 23:25, , 8F
所以應該是2153篇的問題吧?
01/16 23:25, 8F

01/16 23:26, , 9F
難道說在getCofactor裡面就要處理neg edge嗎??
01/16 23:26, 9F

01/16 23:26, , 10F
呵呵你說呢~
01/16 23:26, 10F

01/16 23:27, , 11F
你可以手作一下XOR的ITE運算
01/16 23:27, 11F

01/16 23:28, , 12F
如果發現作不出參考的結果...就可以知道觀念有地方錯了
01/16 23:28, 12F

01/16 23:28, , 13F
我以為ite裡面已經把neg edge處理掉了,所以就沒管它..
01/16 23:28, 13F

01/16 23:28, , 14F
我當初就是這樣發現的...orz
01/16 23:28, 14F

01/16 23:29, , 15F
老師在原PO上一篇說neg edge處理掉的意思是,
01/16 23:29, 15F

01/16 23:30, , 16F
ITE(F,G,H)的G端絕對不能有neg edge的要求會被處理
01/16 23:30, 16F

01/16 23:31, , 17F
不過如果一個node本身是頭上頂泡泡的
01/16 23:31, 17F

01/16 23:31, , 18F
這個在getCofactor()s的時候要注意一下:)
01/16 23:31, 18F

01/16 23:42, , 19F
應該要看edge喔 因為cofactor的定義
01/16 23:42, 19F

01/16 23:55, , 20F
!! 好像發現自己錯在哪裡了...
01/16 23:55, 20F

01/17 00:12, , 21F
~a|~b正確了,但是現在f^g多了四個node 囧
01/17 00:12, 21F

01/17 00:27, , 22F
~a|~b的refCount也不太一樣...
01/17 00:27, 22F
文章代碼(AID): #1BKTXeMe (EE_DSnP)