From: "Nasser M. Abbasi" <nma@12000.org>
Subject: basic question on adding 2 arrays
Date: Sat, 12 Jul 2014 22:34:53 -0500
Date: 2014-07-12T22:34:53-05:00 [thread overview]
Message-ID: <lpsup7$fpu$1@speranza.aioe.org> (raw)
I am really rusty in Ada since I have not used it for sometime.
Is there an easy way to add one slice of an array to another
without having to make an explicit loop? Here is MWE
------------------------------------------------
with Ada.Text_IO; use Ada.Text_IO;
procedure foo is
nPoints : constant Integer := 100;
type grid_type is array (1 .. nPoints) of Float;
now : grid_type := (others => 0.0);
next: grid_type := now;
begin
next(2..now'length-1) := 1/2*
(now(1..now'length-1)+now(3..now'length));
end foo;
--------------------------------------------------
I am basically trying to update an array (this is a finite difference
scheme). The error is that "+" is not defined for the grid_type,
which I understand ofcourse. But wanted to ask if there is a way
to do this in-line without having to define a method for this.
For example, in Matlab or Fortran something like this works:
next(2:end-1) = 1/2*(now(1:end-2)+now(3:end));
It is not big deal to defined "+" for the grid_type, but
wanted to check if there might be a way to do it without,
or a better way to do update.
thanks,
--Nasser
next reply other threads:[~2014-07-13 3:34 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-07-13 3:34 Nasser M. Abbasi [this message]
2014-07-13 4:09 ` basic question on adding 2 arrays Nasser M. Abbasi
2014-07-13 4:35 ` Nasser M. Abbasi
2014-07-13 6:33 ` Jeffrey Carter
2014-07-13 10:10 ` AdaMagica
2014-07-13 16:25 ` Jacob Sparre Andersen
2014-07-13 21:53 ` Jeffrey Carter
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox