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 _______________________________________________ Numpy-discussion mailing list Numpy-discussion@scipy.org http://projects.scipy.org/mailman/listinfo/numpy-discussion