[Numpy-discussion] hstack(arr_Int32, arr_float32) fails because of casting rules

Travis Oliphant oliphant.travis at ieee.org
Thu Aug 24 21:46:51 CDT 2006


Sebastian Haase wrote:
> On Thursday 24 August 2006 17:28, Travis Oliphant wrote:
>   
> Are you saying the  ufunc-rules  would convert "int32-float32" to float64  and 
> hence make my code "just work" !?
>   
Yes.  That's what I'm saying (but you would get float64 out --- but if 
you didn't want that then you would have to be specific).

> And why are there two sets of rules ?
>   
Because there are two modules (multiarray and umath) where the 
functionality is implemented.

> Are the Numeric rules used at many places ?
>   
Not that many.  I did abstract the notion to a C-API:  
PyArray_ConvertToCommonType and implemented the 
scalars-don't-cause-upcasting part of the ufunc rules in that code.   
But, I followed the old-style Numeric coercion rules for the rest of it 
(because I was adapting Numeric).

Right now, unless there are strong objections, I'm leaning to changing 
that so that the same coercion rules are used whenever a common type is 
needed. 

It would not be that difficult of a change.

-Travis







More information about the Numpy-discussion mailing list