作者BBSealion (海狮)
看板EE_DSnP
标题[问题] strash & hash
时间Tue Jan 11 18:55:25 2011
好像还是不能完全懂这里的概念orz
虽然大概能理解hash function如何做,但还有些问题
我讲一下我理解的部份好了
请大家帮我看看有没有错误,还有一些实作上的问题,感谢!
---
既然目标是要找到fanin in完全一样的gate(包括fanin的 id和invert)
开始流程大概是
1.对每个gate: g_n,先用他造出一个HashKey: g_nk
2.一起丢进Hash里面 h.insert(g_nk,g_n)
理论上HashKey不同,代表他的fanin一定不同
但HashKey相同,不代表fanin就一定相同
不过同一个bucket也可能有不同的HashKey被丢进来
所以我只要check同bucket中各个slot是否有可以merge的gate就好了
在不同bucket中的一定不可能被merge
---
我的问题是:
这个过程中,
是每次insert时就要去检查是否有一样,然後当场完成merge的动作吗?
感觉这样是比较好的,但又觉得把merge的动作写在insert里面
好像有点让Hash不乾净,变成不是一个独立的资料结构
而是一定要配合我电路graph使用
但全部都insert进去之後,再去处理merge问题
就无法确定是dfs的顺序去merge,那有些能merge的东西就会漏掉了
想问问看大家是怎麽做的?
---
ps:有需要merge fanin一样的 output吗?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 218.168.217.146
※ 编辑: BBSealion 来自: 218.168.217.146 (01/11 18:57)
1F:推 TommyKSHS:记得老师好像有说过 output 还有 input不能被simplified 01/11 19:02
2F:推 puerpuella:先check,有就merge,没有就forceInsert? 01/11 19:08
3F:→ BBSealion:嗯... 楼上这样讲不错 (楼楼上谢啦XD) 01/11 19:38
4F:→ BBSealion:但这样变成每个都用check和forceinsert来完成 insert 01/11 19:40
5F:→ BBSealion:本身反而变成没有用了? 01/11 19:40
6F:→ BBSealion:有点像把insert该做的两件事拆成两个function分别完成 01/11 19:44
7F:推 ric2k1:推 3000!! 01/11 21:14
8F:→ BBSealion:噗... XDD 01/11 21:34
9F:→ BBSealion:话说 bucket的数量...开个十万会很过分吗= =? 01/11 21:35
10F:推 tomap41017:3000PO被你抢到了..数量就开3000吧!(误 01/12 14:21