From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-0.3 required=5.0 tests=BAYES_00, REPLYTO_WITHOUT_TO_CC autolearn=no autolearn_force=no version=3.4.4 Path: eternal-september.org!reader01.eternal-september.org!reader02.eternal-september.org!news.eternal-september.org!news.eternal-september.org!news.eternal-september.org!feeder.eternal-september.org!aioe.org!.POSTED!not-for-mail From: "Nasser M. Abbasi" Newsgroups: comp.lang.ada Subject: basic question on adding 2 arrays Date: Sat, 12 Jul 2014 22:34:53 -0500 Organization: Aioe.org NNTP Server Message-ID: Reply-To: nma@12000.org NNTP-Posting-Host: +bGw3iKtw0btMD059xlTWg.user.speranza.aioe.org Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Complaints-To: abuse@aioe.org User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Thunderbird/24.6.0 X-Notice: Filtered by postfilter v. 0.8.2 Xref: news.eternal-september.org comp.lang.ada:20899 Date: 2014-07-12T22:34:53-05:00 List-Id: 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