comp.lang.ada
 help / color / mirror / Atom feed
From: Jerry <list_email@icloud.com>
Subject: Re: How to access an array using two different indexing schemes
Date: Thu, 30 Nov 2017 15:13:12 -0800 (PST)
Date: 2017-11-30T15:13:12-08:00	[thread overview]
Message-ID: <304b7ec5-7d43-4fb3-9a61-d92cf4ea6b8e@googlegroups.com> (raw)
In-Reply-To: <ovpuf5$94f$1@franka.jacob-sparre.dk>

On Thursday, November 30, 2017 at 2:50:31 PM UTC-7, Randy Brukardt wrote:
> 
> The only thing that does work is the type conversion in parameter passing 
> (as I originally illustrated). So something like the following should work 
> (should because I didn't try it):
> 
The type conversion at the subroutine level also works for an open array in the formal argument. The following uses an array which is accessed by an access variable--the "usual" declaration method also works, i.e,. if x is declared as 

x : Real_Vector(-4 .. 3);


with Ada.Text_IO; use Ada.Text_IO;
with Ada.Numerics.Long_Real_Arrays; use Ada.Numerics.Long_Real_Arrays;

procedure Randy_V3 is
    type Real_Vector_Access is access Real_Vector;
    x_Ptr : Real_Vector_Access := new Real_Vector(-4 .. 3);
        x : Real_Vector renames x_Ptr.all;
    subtype RV0_7 is Real_Vector(0..7);

    procedure Do_X(x : in out Real_Vector) is
    begin
        for i in x'range loop
            x(i) := x(i) + 0.1;
            Put_Line(i'img & "  " & x(i)'img);
        end loop;
    end Do_X;

    procedure Do_Y(y : in out RV0_7) is
    begin
        for i in y'range loop
            y(i) := y(i) + 0.2;
            Put_Line(i'img & "  " & y(i)'img);
        end loop;
    end Do_Y;

    procedure Do_Y_Open(y : in out Real_Vector) is
    begin
        for i in y'range loop
            y(i) := y(i) + 0.3;
            Put_Line(i'img & "  " & y(i)'img);
        end loop;
    end Do_Y_Open;

begin
    x := (-4.0, -3.0, -2.0, -1.0, 0.0, 1.0, 2.0, 3.0);
    Do_X(x);
    New_Line;
    Do_Y(RV0_7(x));
    New_Line;
    Do_Y_Open(RV0_7(x));
end Randy_V3;


-4  -3.90000000000000E+00
-3  -2.90000000000000E+00
-2  -1.90000000000000E+00
-1  -9.00000000000000E-01
 0   1.00000000000000E-01
 1   1.10000000000000E+00
 2   2.10000000000000E+00
 3   3.10000000000000E+00

 0  -3.70000000000000E+00
 1  -2.70000000000000E+00
 2  -1.70000000000000E+00
 3  -7.00000000000000E-01
 4   3.00000000000000E-01
 5   1.30000000000000E+00
 6   2.30000000000000E+00
 7   3.30000000000000E+00

 0  -3.40000000000000E+00
 1  -2.40000000000000E+00
 2  -1.40000000000000E+00
 3  -4.00000000000000E-01
 4   6.00000000000000E-01
 5   1.60000000000000E+00
 6   2.60000000000000E+00
 7   3.60000000000000E+00

Jerry

  reply	other threads:[~2017-11-30 23:13 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-11-24 11:42 How to access an array using two different indexing schemes Jerry
2017-11-24 12:33 ` Jeffrey R. Carter
2017-11-24 15:52   ` AdaMagica
2017-11-24 22:25     ` Jerry
2017-11-25 13:57       ` AdaMagica
2017-11-24 22:23   ` Jerry
2017-11-25 15:39   ` Robin
2017-11-25 20:58     ` Jerry
2017-11-26 10:22       ` Robin
2017-11-28 21:57       ` G. B.
2017-11-24 17:37 ` A. Cervetti
2017-11-24 21:48   ` Jerry
2017-11-24 22:15     ` Robert A Duff
2017-11-24 23:38       ` Jerry
2017-11-26  1:07         ` Jerry
2017-11-26  8:58           ` Dmitry A. Kazakov
2017-11-26 10:31             ` Jerry
2017-11-28  1:31             ` Randy Brukardt
2017-11-28  1:25   ` Randy Brukardt
2017-11-29  4:57     ` Jerry
2017-11-29 15:01       ` AdaMagica
2017-11-29 15:21         ` AdaMagica
2017-11-30  5:32           ` Jerry
2017-11-30  5:30         ` Jerry
2017-11-29 15:03       ` AdaMagica
2017-11-29 20:53         ` Randy Brukardt
2017-11-29 16:03       ` Shark8
2017-11-29 17:04         ` AdaMagica
2017-11-29 20:56           ` Randy Brukardt
2017-11-30  5:56             ` Jerry
2017-11-30 11:11               ` AdaMagica
2017-11-30 11:40                 ` AdaMagica
2017-11-30 14:47                   ` Niklas Holsti
2017-11-30 17:30                     ` AdaMagica
2017-11-30 19:31                       ` G. B.
2017-11-30 19:43                         ` Shark8
2017-11-30 22:10                           ` Randy Brukardt
2017-11-30 21:57                     ` Randy Brukardt
2017-11-30 22:49                 ` Jerry
2017-11-30 23:00                   ` Jerry
2017-11-30 21:50               ` Randy Brukardt
2017-11-30 23:13                 ` Jerry [this message]
2017-11-24 18:37 ` Per Sandberg
2017-11-24 21:28   ` Jerry
2017-11-24 21:40     ` Dmitry A. Kazakov
2017-11-28  1:33     ` Randy Brukardt
2017-11-24 22:12 ` Robert A Duff
2017-11-28  1:39   ` Randy Brukardt
replies disabled

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