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