� wrote:

> The idea is to build a value that is  between minA and maxA and will
> set as many bits as possible when or'ed with maxB:

The assumption that maxB would be the value that produces the maximum a|b is not correct. A lower valued b may fill more gaps in the bit representation of what is calculated from min_a and max_a.

Your function failed for me with the following values:

           min_a 00000000000000000000000011001000 000000c8        200
           max_a 00000000000000000000001100001111 0000030f        783
           min_b 00000000000000000000000001000101 00000045         69
           max_b 00000000000000000000001001100001 00000261        609
      calculated 00000000000000000000001001100101 00000265        613
WRONG! empirical 00000000000000000000001111111111 000003ff       1023
       emp_max_a 00000000000000000000000110011110 0000019e        414
       emp_max_b 00000000000000000000001001100001 00000261        609

Please see my test code elsewhere in the same thread: :)

http://www.digitalmars.com/webnews/newsgroups.php?art_group=digitalmars.D&article_id=108851

Ali

Reply via email to