Binary ufuncs: bitwise operators

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

Binary ufuncs: bitwise operators

Charles R Harris
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

_______________________________________________
Numpy-discussion mailing list
[hidden email]
http://projects.scipy.org/mailman/listinfo/numpy-discussion