comp.lang.ada
 help / color / mirror / Atom feed
From: hnptz@yahoo.de
Subject: Re: Ada.Numerics.Long_Real_Arrays
Date: Fri, 27 Jan 2017 08:51:05 -0800 (PST)
Date: 2017-01-27T08:51:05-08:00	[thread overview]
Message-ID: <85df173c-35e9-4e2e-b067-459794a98aa8@googlegroups.com> (raw)
In-Reply-To: <5a19787c-a11c-470e-8cef-2c5dc4897bf7@googlegroups.com>

> 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;
> 
> -- definition of procedure nm1 in package body nm done.
> 
> now in procedure test_nm.adb (only definitions):
> 
> Np : Positive := 2;
> Mp : Positive := Np+1;
> 
> 24  P : R_Matrix(1..Mp) := ((x,x),(y,y),(z,z));
> 
> no "build all" error or warning
> 
> result when running:
> 
> raised CONSTRAINT_ERROR : test_nm.adb: 24 length check failed.
> 
> Can you help?


On January 25. Simon Wright wrote:

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; 

It works.

My new Nm_Test is

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,X  : R_Vector := P (P'Last);
   MLF : Long_Float := 6.0; 
begin 
   Put_Line ("v: " & V (V'First)'Img & ", " & V (V'Last)'Img); 
   X := V / MLF;
   Put_Line ("X: " & X (X'First)'Img & ", " & X(X'Last)'Img); 
end Nm_Test; 

It should also work according to the description in the ARM 2012.
However, it says: expected type "Standard.Long_Float"

Maybe it lacks implementation ?


  parent reply	other threads:[~2017-01-27 16:51 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   ` Ada.Numerics.Long_Real_Arrays Simon Wright
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 ` hnptz [this message]
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