2008/8/9 Dag Sverre Seljebotn <[EMAIL PROTECTED]>:
> 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.

Well, I believe that people with some background in Fortran 90 will
definitely like and support my proposal.

> I think one could make the ndim keyword mandatory at first, to delay the 
> decision about which positional argument should be 2nd.

Well, I believe that is a good approach. IMHO, declaring

cdef ndarray[int, 3] tmp

is not really clear that '3' means a 3D array. The intention of my
proposal is just to provide a syntax that is less ambiguous and have
room for more facilities (shape checking, negative starts, require
shape at least xD, etc.)


> -----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
>
>



-- 
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

Reply via email to