[Python-Dev] Error in PEP3118? (original) (raw)
Guido van Rossum guido at python.org
Wed Jan 23 17:45:23 CET 2008
- Previous message: [Python-Dev] Error in PEP3118?
- Next message: [Python-Dev] Error in PEP3118?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Travis,
Perhaps you can add this rationale to the PEP? It seems helpful and might stave off future confusion.
--Guido
On Jan 23, 2008 8:17 AM, Travis Oliphant <oliphant.travis at ieee.org> wrote:
Thomas Heller wrote: > Hi Travis, > > The pep contains this sample: > > """ > Nested array > :: > > struct { > int ival; > double data[16*4]; > } > """i:ival: > (16,4)d:data: > """ > """ > > I think it is wrong and must be changed to the following; is this correct? > > """ > Nested array > :: > > struct { > int ival; > double data[16][4]; > } > """i:ival: > (16,4)d:data: > """ > """
I responded off list to this email and wanted to summarize my response for others to peruse. Basically, the answer is that the struct syntax proposed for multi-dimensional arrays is not intended to mimic how the C-compiler handles statically defined C-arrays (i.e. the pointer-to-pointers style of multi-dimensional arrays). It is intended to handle the contiguous-block-of-data style of multi-dimensional arrays that NumPy uses. I wanted to avoid 2-d static arrays in the examples because it gets confusing and AFAIK the layout of the memory for a double data[16][4] is the same as data[16*4]. The only difference is how the C-compiler translates data[4][3] and data[4]. The intent of the struct syntax is to handle describing memory. The point is not to replicate how the C-compiler deals with statically defined N-D arrays. Thus, even though the struct syntax allows communicating the intent of a contiguous block of memory inside a structure as an N-d array, the fundamental memory block is the equivalent of a 1-d array in C. So, I think the example is correct (and intentional). -Travis O.
Python-Dev mailing list Python-Dev at python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/guido%40python.org
-- --Guido van Rossum (home page: http://www.python.org/~guido/)
- Previous message: [Python-Dev] Error in PEP3118?
- Next message: [Python-Dev] Error in PEP3118?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]