comp.lang.ada
 help / color / mirror / Atom feed
From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: REQ: Extend slices for n dimensional arrays for Ada 202X
Date: Thu, 26 Jan 2017 15:52:02 +0100
Date: 2017-01-26T15:52:02+01:00	[thread overview]
Message-ID: <o6d2eh$4mu$1@gioia.aioe.org> (raw)
In-Reply-To: 0fbd77dd-bcc2-462c-9ca3-be1ffb51e0c6@googlegroups.com

On 26/01/2017 15:01, Lucretia wrote:
> On Thursday, 26 January 2017 13:29:47 UTC, Lucretia  wrote:
>
>>
>>   Texture (x1 .. x2, y1 .. y2) := Buffer;  --  Buffer is the correct size.
>
> I forgot to mention something else. I put the above notation down as
> someone in #Ada liked tha, but I would prefer the following:
>
>   Texture (x1, y1 .. x2, y2) := Buffer;  --  Buffer is the correct size.

I don't understand the latter. (X1, Y1) .. (X2, Y2) is not a submatrix 
it is a linear slice:

  I   1 2 3 4
      -------
  1 | a b c d
  2 | e f g h
  3 | i j k l
  4 | m n o p

Submatrix 1..2, 2..4 is

      1 2 3
      -----
  1 | b c d
  2 | f g h

(1,2) .. (2,4) is a vector

  1 | b
  2 | c
  3 | d
  4 | e
  5 | f
  6 | g
  7 | h

> The reasoning is as follows:
>
> 1) That is easier for people to visualise.
> 2) That follows how n-dimensional arrays are accessed in Ada, i.e.
>
>   procedure Test is
>      type Matrix is array (1 .. 4, 1 .. 4) of Float;
>
>      I : Matrix;
>   begin
>      I (1, 4) := 0.0;
>   end Test;

It does not follow. The indexing notation is as a tuple

    I1 x I2 x ... x IN

Where Ik is either a singleton (collapsed dimension) or a subset of the 
index (in Ada a range).

With generic subsets I ({1,2},{2,4}) would mean

       1 2
       ---
   1 | b d
   2 | f g

You forgot notation for whole index range:

   I (<>, 1)  -- column 1.

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de

  parent reply	other threads:[~2017-01-26 14:52 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-01-26 13:29 REQ: Extend slices for n dimensional arrays for Ada 202X Lucretia
2017-01-26 14:01 ` Lucretia
2017-01-26 14:03   ` Lucretia
2017-01-26 14:52   ` Dmitry A. Kazakov [this message]
2017-01-27  9:19     ` Alejandro R. Mosteo
2017-01-27 14:04     ` Lucretia
2017-01-26 18:29 ` Randy Brukardt
2017-01-27  1:54   ` Robert Eachus
2017-01-27  5:39     ` Robert Eachus
2017-01-27 14:06     ` Lucretia
2017-01-27 23:30     ` Randy Brukardt
2017-01-28  0:58       ` Robert Eachus
2017-01-27  9:34   ` Dmitry A. Kazakov
2017-01-27 13:53     ` G.B.
2017-01-27 14:20       ` Dmitry A. Kazakov
2017-01-27 23:37       ` Randy Brukardt
2017-01-28  9:08         ` Dmitry A. Kazakov
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox