[Numpy-discussion] Binary ufuncs: bitwise operators

Charles R Harris charlesr.harris at gmail.com
Mon May 26 23:03:29 EDT 2008


Here are the bitwise operators. Note that combinations of signed and
unsigned types lead to promotion to larger types. I don't think that is
right, especially as the high bits will be zeroed anyway when the unsigned
number is sign extended. Note also the object type used to promote the 'Q'
(unsigned long long) type. On my machine i and l are the same precision, but
different c-types, so it would also make me feel better if the rows/cols for
l,L used the same types, making the functions symmetric in the arguments.

bitwise_and
not symmetric
in1       ?  , b  , B  , h  , H  , i  , I  , l  , L  , q  , Q  , f  , d  ,
g  , F  , D  , G  ,

--------------------------------------------------------------------------------------
in2  ?  | ?  , b  , B  , h  , H  , i  , I  , i  , I  , q  , Q  , err, err,
err, err, err, err,
in2  b  | b  , b  , h  , h  , i  , i  , q  , i  , q  , q  , O  , err, err,
err, err, err, err,
in2  B  | B  , h  , B  , h  , H  , i  , I  , i  , I  , q  , Q  , err, err,
err, err, err, err,
in2  h  | h  , h  , h  , h  , i  , i  , q  , i  , q  , q  , O  , err, err,
err, err, err, err,
in2  H  | H  , i  , H  , i  , H  , i  , I  , i  , I  , q  , Q  , err, err,
err, err, err, err,
in2  i  | i  , i  , i  , i  , i  , i  , q  , i  , q  , q  , O  , err, err,
err, err, err, err,
in2  I  | I  , q  , I  , q  , I  , q  , I  , q  , I  , q  , Q  , err, err,
err, err, err, err,
in2  l  | l  , l  , l  , l  , l  , l  , q  , l  , q  , q  , O  , err, err,
err, err, err, err,
in2  L  | L  , q  , L  , q  , L  , q  , L  , q  , L  , q  , Q  , err, err,
err, err, err, err,
in2  q  | q  , q  , q  , q  , q  , q  , q  , q  , q  , q  , O  , err, err,
err, err, err, err,
in2  Q  | Q  , O  , Q  , O  , Q  , O  , Q  , O  , Q  , O  , Q  , err, err,
err, err, err, err,
in2  f  | err, err, err, err, err, err, err, err, err, err, err, err, err,
err, err, err, err,
in2  d  | err, err, err, err, err, err, err, err, err, err, err, err, err,
err, err, err, err,
in2  g  | err, err, err, err, err, err, err, err, err, err, err, err, err,
err, err, err, err,
in2  F  | err, err, err, err, err, err, err, err, err, err, err, err, err,
err, err, err, err,
in2  D  | err, err, err, err, err, err, err, err, err, err, err, err, err,
err, err, err, err,
in2  G  | err, err, err, err, err, err, err, err, err, err, err, err, err,
err, err, err, err,

bitwise_or
not symmetric
in1       ?  , b  , B  , h  , H  , i  , I  , l  , L  , q  , Q  , f  , d  ,
g  , F  , D  , G  ,

--------------------------------------------------------------------------------------
in2  ?  | ?  , b  , B  , h  , H  , i  , I  , i  , I  , q  , Q  , err, err,
err, err, err, err,
in2  b  | b  , b  , h  , h  , i  , i  , q  , i  , q  , q  , O  , err, err,
err, err, err, err,
in2  B  | B  , h  , B  , h  , H  , i  , I  , i  , I  , q  , Q  , err, err,
err, err, err, err,
in2  h  | h  , h  , h  , h  , i  , i  , q  , i  , q  , q  , O  , err, err,
err, err, err, err,
in2  H  | H  , i  , H  , i  , H  , i  , I  , i  , I  , q  , Q  , err, err,
err, err, err, err,
in2  i  | i  , i  , i  , i  , i  , i  , q  , i  , q  , q  , O  , err, err,
err, err, err, err,
in2  I  | I  , q  , I  , q  , I  , q  , I  , q  , I  , q  , Q  , err, err,
err, err, err, err,
in2  l  | l  , l  , l  , l  , l  , l  , q  , l  , q  , q  , O  , err, err,
err, err, err, err,
in2  L  | L  , q  , L  , q  , L  , q  , L  , q  , L  , q  , Q  , err, err,
err, err, err, err,
in2  q  | q  , q  , q  , q  , q  , q  , q  , q  , q  , q  , O  , err, err,
err, err, err, err,
in2  Q  | Q  , O  , Q  , O  , Q  , O  , Q  , O  , Q  , O  , Q  , err, err,
err, err, err, err,
in2  f  | err, err, err, err, err, err, err, err, err, err, err, err, err,
err, err, err, err,
in2  d  | err, err, err, err, err, err, err, err, err, err, err, err, err,
err, err, err, err,
in2  g  | err, err, err, err, err, err, err, err, err, err, err, err, err,
err, err, err, err,
in2  F  | err, err, err, err, err, err, err, err, err, err, err, err, err,
err, err, err, err,
in2  D  | err, err, err, err, err, err, err, err, err, err, err, err, err,
err, err, err, err,
in2  G  | err, err, err, err, err, err, err, err, err, err, err, err, err,
err, err, err, err,

bitwise_xor
not symmetric
in1       ?  , b  , B  , h  , H  , i  , I  , l  , L  , q  , Q  , f  , d  ,
g  , F  , D  , G  ,

--------------------------------------------------------------------------------------
in2  ?  | ?  , b  , B  , h  , H  , i  , I  , i  , I  , q  , Q  , err, err,
err, err, err, err,
in2  b  | b  , b  , h  , h  , i  , i  , q  , i  , q  , q  , O  , err, err,
err, err, err, err,
in2  B  | B  , h  , B  , h  , H  , i  , I  , i  , I  , q  , Q  , err, err,
err, err, err, err,
in2  h  | h  , h  , h  , h  , i  , i  , q  , i  , q  , q  , O  , err, err,
err, err, err, err,
in2  H  | H  , i  , H  , i  , H  , i  , I  , i  , I  , q  , Q  , err, err,
err, err, err, err,
in2  i  | i  , i  , i  , i  , i  , i  , q  , i  , q  , q  , O  , err, err,
err, err, err, err,
in2  I  | I  , q  , I  , q  , I  , q  , I  , q  , I  , q  , Q  , err, err,
err, err, err, err,
in2  l  | l  , l  , l  , l  , l  , l  , q  , l  , q  , q  , O  , err, err,
err, err, err, err,
in2  L  | L  , q  , L  , q  , L  , q  , L  , q  , L  , q  , Q  , err, err,
err, err, err, err,
in2  q  | q  , q  , q  , q  , q  , q  , q  , q  , q  , q  , O  , err, err,
err, err, err, err,
in2  Q  | Q  , O  , Q  , O  , Q  , O  , Q  , O  , Q  , O  , Q  , err, err,
err, err, err, err,
in2  f  | err, err, err, err, err, err, err, err, err, err, err, err, err,
err, err, err, err,
in2  d  | err, err, err, err, err, err, err, err, err, err, err, err, err,
err, err, err, err,
in2  g  | err, err, err, err, err, err, err, err, err, err, err, err, err,
err, err, err, err,
in2  F  | err, err, err, err, err, err, err, err, err, err, err, err, err,
err, err, err, err,
in2  D  | err, err, err, err, err, err, err, err, err, err, err, err, err,
err, err, err, err,
in2  G  | err, err, err, err, err, err, err, err, err, err, err, err, err,
err, err, err, err,

Chuck
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20080526/e90f6e9f/attachment.html>


More information about the NumPy-Discussion mailing list