[Numpy-discussion] Should non ufunc numpy functions behave like ufunc regarding casting to output argument ?
Rick White
rlw at stsci.edu
Tue Jan 16 08:00:42 EST 2007
On Jan 15, 2007, at 10:41 PM, David Cournapeau wrote:
> Concerning the point of avoiding allocating new storage, I am a bit
> suspicious: if the types do not match, and the casting is done at the
> end, then it means all internal computation will be done is whatever
> type is chosen by the function (I am using PyArray_CommonType for
> that),
> and the cast done at the end, meaning new storage.
Presumably you should do what ufuncs do: divide the computation up
into blocks when the array is big. If a cast is required then you do
the computation for each block, allocating new storage for that
block. Then you do the cast for the block and copy it to the output
array.
That way you only have to allocate enough new storage for a single
block, which is (potentially) much smaller than the whole array.
Rick
More information about the NumPy-Discussion
mailing list