comp.lang.ada
 help / color / mirror / Atom feed
From: Simon Wright <simon@pushface.org>
Subject: Re: Ada.Numerics.Long_Real_Arrays
Date: Wed, 25 Jan 2017 16:17:01 +0000
Date: 2017-01-25T16:17:01+00:00	[thread overview]
Message-ID: <ly37g7w1vm.fsf@pushface.org> (raw)
In-Reply-To: 40c85340-df43-43f7-8974-dca83704036e@googlegroups.com

hnptz@yahoo.de writes:

> On Wednesday, January 25, 2017 at 1:25:18 PM UTC+1, hn...@yahoo.de wrote:
>> Hi,
>> 
>> these are my definitions:
>> 
>> with Ada.Numerics.Long_Real_Arrays; use Ada.Numerics.Long_Real_Arrays;
>> package nm is
>> 
>> Np : Positive;
>> Type R_Vector is new Real_Vector (1..Np);
>> Type R_Matrix is array (Positive range <>) of R_Vector;
>> 
>> procedure nm1 (P : in out R_Matrix);
>> 
>> end nm;

> First, I want to keep the length of P open until I fix it in
> test_nm.adb. The length of R_Vector is always Mp-1.  Second, I want to
> use the builtin Real_Vector arithmetic, that I do not have to resort
> to loops. Using Real_Matrix definitions won't allow it, as slices of
> n-dimensional arrays are not possible.

You could try a generic?

with Ada.Numerics.Long_Real_Arrays;
generic
   Rows : Positive;
package Nm_G is
   subtype R_Vector
     is Ada.Numerics.Long_Real_Arrays.Real_Vector (1 .. Rows - 1);
   type R_Matrix is array (1 .. Rows) of R_Vector;
end Nm_G;

with Ada.Text_Io; use Ada.Text_Io;
with Nm_G;
procedure Nm_Test is
   package Nm is new Nm_G (Rows => 3);
   use Nm;
   P : R_Matrix := ((42.0, 42.0), (43.0, 43.0), (44.0, 44.0));
   V : R_Vector := P (P'Last);
begin
   Put_Line ("v: " & V (V'First)'Img & ", " & V (V'Last)'Img);
end Nm_Test;

  reply	other threads:[~2017-01-25 16:17 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-01-25 12:25 Ada.Numerics.Long_Real_Arrays hnptz
2017-01-25 13:50 ` Ada.Numerics.Long_Real_Arrays Simon Wright
2017-01-25 14:11 ` Ada.Numerics.Long_Real_Arrays hnptz
2017-01-25 16:17   ` Simon Wright [this message]
2017-01-25 18:35 ` Ada.Numerics.Long_Real_Arrays hnptz
2017-01-25 21:29 ` Ada.Numerics.Long_Real_Arrays hnptz
2017-01-26  7:47   ` Ada.Numerics.Long_Real_Arrays Simon Wright
2017-01-26 11:54     ` Ada.Numerics.Long_Real_Arrays hnptz
2017-01-26 14:52       ` Ada.Numerics.Long_Real_Arrays Simon Wright
2017-01-26 15:03         ` Ada.Numerics.Long_Real_Arrays Simon Wright
2017-01-26  7:49   ` Ada.Numerics.Long_Real_Arrays Simon Wright
2017-01-26  7:55     ` Ada.Numerics.Long_Real_Arrays Simon Wright
2017-01-27 16:51 ` Ada.Numerics.Long_Real_Arrays hnptz
2017-01-27 18:39   ` Ada.Numerics.Long_Real_Arrays Simon Wright
replies disabled

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