Re: [Numpy-discussion] Update on using scons to build numpy

2008-01-13 Thread Matthew Brett
Hi,

 A quick email to give an update on my work to build numpy with
 scons. I've finished a few days ago to make my former work a separate
 package from numpy: it was more work than I expected because of
 bootstrapping issues, but I can now build numpy again with the new
 package on Linux.

Just to thank you very much for your work on this.

Matthew
___
Numpy-discussion mailing list
Numpy-discussion@scipy.org
http://projects.scipy.org/mailman/listinfo/numpy-discussion


[Numpy-discussion] casting

2008-01-13 Thread Neal Becker
numpy frequently refers to 'casting'.  I'm not sure if that term is ever
defined.  I believe it has the same meaning as in C.  In that case, it is
unfortunately used to mean 2 different things.  There are casts that do not
change the underlying bits (such as a pointer cast), and there are casts
that actually convert to different bits (such as float - double).

I think numpy means the latter.  When an array where the underlying data is
one type, a cast to another type means actually reallocating and converting
the data.

It often occurs that I have an algorithm that can take any integral type,
because it is written with c++ templates.  In that case, I don't want to
use PyArray_FROMANY, because I don't want to unecessarily convert the array
data.  Instead, I'd like to inquire what is the preferred type of the data.

The solution I'm exploring is to use a function I
call 'preferred_array_type'.  This uses the __array_struct__ interface to
find the native data type.  I chose to use this interface, because then it
will work with both numpy arrays and other array-like types.

Any thoughts on all of this?  Particularly, my observation that numpy seems
to want me to tell it what data type of array my algorithm wants, but
doesn't seem to provide a good mechanism to allow me to inquire what is the
native type to avoid conversion.

___
Numpy-discussion mailing list
Numpy-discussion@scipy.org
http://projects.scipy.org/mailman/listinfo/numpy-discussion


Re: [Numpy-discussion] casting

2008-01-13 Thread Robert Kern
Neal Becker wrote:
 numpy frequently refers to 'casting'.  I'm not sure if that term is ever
 defined.  I believe it has the same meaning as in C.  In that case, it is
 unfortunately used to mean 2 different things.  There are casts that do not
 change the underlying bits (such as a pointer cast), and there are casts
 that actually convert to different bits (such as float - double).
 
 I think numpy means the latter.  When an array where the underlying data is
 one type, a cast to another type means actually reallocating and converting
 the data.

Yes, that is usually what people mean when they use _casting_ in the context of 
numpy. It is the more frequently performed operation of the two. The former can 
be accomplished with the .view(dtype) method of ndarrays.

 It often occurs that I have an algorithm that can take any integral type,
 because it is written with c++ templates.  In that case, I don't want to
 use PyArray_FROMANY, because I don't want to unecessarily convert the array
 data.  Instead, I'd like to inquire what is the preferred type of the data.
 
 The solution I'm exploring is to use a function I
 call 'preferred_array_type'.  This uses the __array_struct__ interface to
 find the native data type.  I chose to use this interface, because then it
 will work with both numpy arrays and other array-like types.
 
 Any thoughts on all of this? 

I'm not sure what you mean by preferred type of the data. Do you mean the 
dtype of the array as it comes in? There are several functions and function 
macros in the numpy C API which take differing amounts of information. For 
example,

  * PyArray_FROM_O(PyObject*onj) just takes an object.
  * PyArray_FROM_OF(PyObject* obj, int req) takes an object and flags like
NPY_CONTIGUOUS.
  * PyArray_FROM_OT(PyObject* obj, int typenum) takes an object and a type
number.
  * PyArray_FROM_OTF(PyObject* obj, int typenum, int req) takes an object, type,
and flags.

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