My initial reaction is that I like it! However it might not be needed... It would have to be (:n, :) rather than (n, :) for consistency.
The thing is, you don't really need the shape in the syntax currently, only ndim. (One can use an assert statement if one wants the check, there doesn't appear to be any advantages to knowing the shape compile-time, unless perhaps if it is very small.) however with this perhaps support for specifying a starting point (index start point, subtracted on all lookups) could be added, that would be potentially very useful but also tend to "add cruft"...add something that is not there in either Python or C... Time and users will have to tell! But I enjoyed such a fresh idea in this discussion. I think one could make the ndim keyword mandatory at first, to delay the decision about which positional argument should be 2nd. Dag Sverre Seljebotn -----Original Message----- From: "Lisandro Dalcin" <[EMAIL PROTECTED]> Date: Thursday, Aug 7, 2008 5:49 pm Subject: [Cython] about to buffer syntax To: Cython-dev <[email protected]>Reply-To: [email protected] I'm still convinced that Fortran 90 array declarators could provide a >more powerfull syntax for buffers, For this, the dimensions should be >specified with a tuple, examples below: > >cdef ndarray[int, ()] a # a scalar > >cdef ndarray[int, (3,)] # a1D array with 3 items > >cdef ndarray[int, (:,)] # a 1D array of any size > >cdef ndarray[int (2,3)] # 2D array with 2 rows and 3 columns > >cdef ndarray[int (:,3)] # 2D array with any number of rows and 3 columns > >cdef ndarray[int (:,:)] # 2D array with any number of rows and columns > >cdef ndarray[float, (3,3,:)] # 3D array, a 'sequence' of 3x3 array > > >We could even use Ellipsis '...' in a similar sense numpy uses them > >cdef ndarray[int, (...)] # any number of dimension > >cdef ndarray[int, (:, ...)] # at least 1D > >cdef ndarray[int, (:, : ,...)] # at least 3D > >cdef ndarray[int, (3, 5, ...)] # at least 2D, but required shape in >first two dims. > > >What do you think? > > >-- >Lisandro Dalcín >--------------- >Centro Internacional de Métodos Computacionales en Ingeniería (CIMEC) >Instituto de Desarrollo Tecnológico para la Industria Química (INTEC) >Consejo Nacional de Investigaciones Científicas y Técnicas (CONICET) >PTLC - Güemes 3450, (3000) Santa Fe, Argentina >Tel/Fax: +54-(0)342-451.1594 >_______________________________________________ >Cython-dev mailing list >[email protected] >http://codespeak.net/mailman/listinfo/cython-dev >
_______________________________________________ Cython-dev mailing list [email protected] http://codespeak.net/mailman/listinfo/cython-dev
