http://www.perlmonks.org?node_id=817949


in reply to Re^6: Need a faster way to find matches
in thread Need a faster way to find matches

Yes, I see it now.

I must have misunderstood your condition "do not share any common bits" to mean ~($i1 XOR $i2) instead of $i1 & $i2. For example, the two numbers in the first example do "share" common bits in the sense that both bits are 0. In this case the only valid value for a given $i1 would be ~$i1 and nothing else.

However, if the condition is $i1 & $i2 == 0, then you're right, there are several possible $i2's.

Still, you may be still better off generating the list of possible values for every existing element of the array and check those instead of blindly doing all comparisons.