On 10/16/2013 09:24 AM, Maciej Sumiński wrote:
> On 10/16/2013 03:49 PM, Dick Hollenbeck wrote:
>> On 10/16/2013 04:09 AM, Maciej Sumiński wrote:
>>> It requires hashing function to be prepared (eg. using boost::hash), 
>>> possibly not very >
>> demanding on CPU cycles.
>>
>>
>> Sounds good.  A hashtable is probably the best bet.  Suggest adding it to 
>> hashtables.h
>> which is where we've put all the hashtables.
>>
>> Might this work?
>>
>> /// hash function for RATS_ELEM type
>> /// taken from: 
>> http://www.boost.org/doc/libs/1_53_0/libs/unordered/examples/fnv1.hpp
>> struct rats_hash
>> {
>>      std::size_t operator()( const RATS_ELEM& e ) const
>>      {
>>          std::size_t hash = 2166136261u;
>>
>>      hash ^= e.m_x;
>>      hash *= 16777619;
>>      hash ^= e.m_y;
>>      hash *= 16777619;       
>>      hash ^= e.m_layer;
>>      hash *= 16777619;       
>>      hash ^= e.m_net;
>>
>>      return hash;
>>      }
>> };
>>
>>
>> It puts in the members in reverse order of importance, m_net being most 
>> important.
>> I got this from my "const char*" hash function for which there is a URL 
>> reference in
>> hashtables.h
> 
> Surely, I will give it a try during tests. I was also considering using 
> netcodes for identification of nodes, but in the end I skipped them. Are 
> coordinates & layer number not enough to unambiguously determine a node?

In space, yes.  Good point.   No telling when you will get ahold of the BOARD 
however,
before or after the DRC.  A BOARD with two nets going to the same place (read 
point in
space) might get missed or confused.  This is a user error, but you need to be 
able to
identify all possibilities at that point in space, no?


m_net => was intended to be netcode, but it may not be needed as you suggest.




> 
> Regards,
> Orson
> .
> 


_______________________________________________
Mailing list: https://launchpad.net/~kicad-developers
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~kicad-developers
More help   : https://help.launchpad.net/ListHelp

Reply via email to