[Numpy-discussion] Binary ufuncs: minimum

Travis E. Oliphant oliphant at enthought.com
Tue May 27 16:40:15 EDT 2008


Charles R Harris wrote:
>
>
> On Tue, May 27, 2008 at 2:10 PM, Travis E. Oliphant 
> <oliphant at enthought.com <mailto:oliphant at enthought.com>> wrote:
>
>     Stéfan van der Walt wrote:
>     > Did this change recently?
>     >
>     > In [33]: np.__version__
>     > Out[33]: '1.1.0.dev5211'
>     >
>     > In [34]: np.minimum(np.uint8(164), np.uint64(12807)).dtype
>     > Out[34]: dtype('uint64')
>     >
>     > But yes, that looks like it should return a uint8.
>     >
>     This discussion is really moot unless a proposal for how to handle
>     different casting rules for different ufuncs is proposed.   Right now,
>     the type-promotion rules are generic and do not depend on the
>     ufunc only
>     on coercion rules for the mixed types.
>
>     One problem with a casting-rules-per-ufunc approach is that it
>     makes it
>     harder to add new types and have them fit in to the casting structure
>     (which is currently possible now).   Some mechanism for allowing the
>     types to plug-in to the per-ufunc rules would be needed.
>
>     These are not impossible things, just a bit of work and not on my
>     personal priority list.
>
>
> Not everything follows those rules, however. So I have put these 
> things up for review so that we can agree on what the are. Of 
> particular concern in my mind are the bitwise and shift operators 
> which currently work in a counter intuitive manner.

Right now, the only complete description of the rules is the code that 
implements them.  So, from that perspective, yes everything follows 
those rules ;-)

-Travis




More information about the NumPy-Discussion mailing list