Matthew Brett wrote:
> Hi,
>
> Thanks a lot for the email - it's an exciting project.
>
>> cdef int i = 4, j = 6
>> cdef np.ndarray[np.float64, 2] arr = np.zeros((10, 10),
>> dtype=np.float64)
>> arr[i, j] = 1
>
> I'm afraid I'm going to pitch into an area I'm ignorant of, and I'm
> sorry for that, but do you think there is any way of allowing fast
> indexing and operations on arrays that do not have their type declared
> at compile time?

Well... the Cython compiler definitely needs to know about which type it
is -- the array simply has a byte buffer, and one needs to know how to
interpret that (how many bytes per element etc.).

However, I could make it so that if you left out the type, it would be
auto-detected. I.e.:

cdef np.ndarray[2] arr = ...
cdef np.float64 x = arr[3,4]

However, if you then did something like this on a 32-bit-system:

cdef np.ndarray[2] arr = ...
print arr[3,4]

Then it would assume arr is an object, and if arr is really float64 you
would segfault.

So the real answer is: Yes, the type is needed.

Dag Sverre

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

Reply via email to