value range propagation for _bitwise_ OR

"Jérôme M. Berger" jeberger at free.fr
Mon Apr 12 10:49:02 PDT 2010


Steven Schveighoffer wrote:
> I'll work on signed values tomorrow :)
> 
	Signed values are trivial:

int maxOr (int minA, int minB, int maxA, int maxB)
{
   if ((minA < 0) && (maxA >= 0))
      return max (maxOr (minA, minB, -1, maxB),
                  maxOr (0, minB, maxA, maxB));

   if ((minB < 0) && (maxB >= 0))
      return max (maxOr (minA, minB, maxA, -1),
                  maxOr (minA, 0, maxA, maxB));

   return (int)maxOr ((uint)minA, (uint)minB,
                      (uint)maxA, (uint)maxB);
}

		Jerome
-- 
mailto:jeberger at free.fr
http://jeberger.free.fr
Jabber: jeberger at jabber.fr

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: OpenPGP digital signature
URL: <http://lists.puremagic.com/pipermail/digitalmars-d/attachments/20100412/845e5687/attachment.pgp>


More information about the Digitalmars-d mailing list