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