[Numpy-discussion] Binary ufuncs: bitwise operators

Charles R Harris charlesr.harris@gmail....
Mon May 26 22:03:29 CDT 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://projects.scipy.org/pipermail/numpy-discussion/attachments/20080526/e90f6e9f/attachment-0001.html
```