推 ts00834811:aig->setIn0(g->getIn0()())之類的? 01/15 02:21
→ ts00834811:上面打錯了應該是g自己的gateV 01/15 02:22
還是不懂欸
這樣有改到fanin0的cirGate*嗎?
※ 編輯: toshiba011 來自: 140.112.4.192 (01/15 02:31)
推 ric2k1:CirGateV = CirGate* + invPhase + floatPhase 01/15 02:34
→ ric2k1:所以 setIn0() 傳進去的是把 CirGate* (addres)轉乘 size_t 01/15 02:35
→ ric2k1:後再加上 invPhase, floatPhase 的值, 跟 literal ID 無關 01/15 02:36
推 ric2k1:另外也可以考慮使用 CirGateV::replace() 01/15 02:36
推 ric2k1:setIn0(0) 小心會 crash 哦!! (把 ptr address 設成 0) 01/15 02:38
想請問一下
那為什麼在cirMgr.cpp的line79, 81裡面
是傳literal?
※ 編輯: toshiba011 來自: 140.112.4.192 (01/15 02:39)
推 ric2k1:因為那時 gate 還沒建起來,我是先偷存 literal ID, 01/15 02:58
→ ric2k1:你 trace 一下 code 可以看到在後來 genConnection() 01/15 02:58
→ ric2k1:的時候我會根據 literal ID 把真正的 fanin gate ptr接上去 01/15 02:59
了解 明天再試試看
謝謝教授!
※ 編輯: toshiba011 來自: 140.112.245.82 (01/15 03:22)
推 anfranion:因為getIn0()等傳回來的是value,所以等於說你是要 01/15 09:44
→ anfranion:先local存一個CirGateV = gate->getIn0() 01/15 09:44
→ anfranion:接著呼叫local in0.replace(新的Gate ptr, in0.isInv()) 01/15 09:45
→ anfranion:接著再setIn0(in0())...老師overloading operator () 01/15 09:46
→ anfranion:去抓出裏頭的value... 01/15 09:46
→ anfranion://超級不直觀的啦啦啦T_T 01/15 09:48
推 sportsben:抱歉我還是不懂老師說setIn0(0)=>(把 ptr address 設成 01/15 11:41
→ sportsben:0 ) ?? 01/15 11:41
推 anfranion:在後面call setIn0(id) 程式基本上解讀是 01/15 11:54
→ anfranion:setIn(ptr) ptr = id .... 反正就是把id當address 01/15 11:55
→ anfranion:解讀 01/15 11:55
推 sportsben:喔喔!!!感謝你 01/15 13:19