[Numpy-discussion] performing operations in-place in numpy

Robert Kern robert.kern@gmail....
Thu Jul 9 12:00:23 CDT 2009

On Thu, Jul 9, 2009 at 11:44, Fons Adriaensen<fons@kokkinizita.net> wrote:
> On Thu, Jul 09, 2009 at 04:30:11PM +0100, Citi, Luca wrote:
>> Also one could have an internal flag which says whether or not is safe
>> to overwrite inputs with ref_count=1.
>> Then import_array() sets this flag to "unsafe" (i.e. current behaviour).
>> If the user of the numpy C-api is aware of how the new feature works,
>> he/she can enable it by switching the flag to "safe" and act accordingly
>> (increase refcounts before / decrease after) whenever he/she needs an array
>> for later reuse.
>> If possible, when imported from python (is there a way to know it? is
>> import_array() called anyway?) the flag could be set to "safe".
> Why complicate things ?
> There is a simple rule which says that if you use an object
> pointer as a function argument you must INCREF it. This is
> just the logical consequence of using refcounted objects.

That's not true. There are many functions even in the standard Python
C API that "borrow" a reference.

Robert Kern

"I have come to believe that the whole world is an enigma, a harmless
enigma that is made terrible by our own mad attempt to interpret it as
though it had an underlying truth."
  -- Umberto Eco

More information about the NumPy-Discussion mailing list