comp.lang.ada
 help / color / mirror / Atom feed
From: Russ <18k11tm001@sneakemail.com>
Subject: efficient vector/matrix operations in Ada
Date: Mon, 06 Aug 2001 18:13:37 -0700
Date: 2001-08-06T18:13:37-07:00	[thread overview]
Message-ID: <3B6F40C1.FD215D1D@sneakemail.com> (raw)

Several years ago I developed a C++ class for vector/matrix operations.
I decided to do the same in Ada as an excercize. A key lesson I learned
about C++ is that vector/matrix operations can be done much more
efficiently using the arithmetic "assignment" operators such as "+="
instead of "+". I am interested in how this is handled in Ada.

Suppose A and B are matrices. The expression

    A = A + B; // inefficient

is much less efficient than

    A += B; // efficient

The former requires the dynamic construction of a temporary matrix to
hold the sum (A + B), which must then be passed by value and copied into
A. This can take three or four times as long as the addition "in place"
using "+=". That is simply unacceptable for numerically intensive
applications such as Monte Carlo simulations.

Since Ada has no arithmetic assignment operators, are vector/matrix
operations in Ada simply inefficient, or do Ada programmers resort to
tacky, ambiguous expressions like

    PlusEquals(A,B);

-- 
Russ P.
http://RussP.org



             reply	other threads:[~2001-08-07  1:13 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-08-07  1:13 Russ [this message]
2001-08-07  2:18 ` efficient vector/matrix operations in Ada Dale Stanbrough
2001-08-07  2:21 ` tmoran
2001-08-07  3:04   ` Russ P.
2001-08-10 16:54     ` B.Gaffney
2001-08-13  7:50       ` Dmitry Kazakov
2001-08-13 19:45       ` Russ
2001-08-13 20:23         ` Larry Hazel
2001-08-13 21:26           ` Ted Dennison
2001-08-14  4:46           ` Russ
2001-08-14  5:28             ` David Starner
2001-08-14  8:17             ` Alexander Boucke
2001-08-14  8:56             ` Lutz Donnerhacke
2001-08-14 10:54             ` Jacob Sparre Andersen
2001-08-13 21:30         ` Ted Dennison
2001-08-14  4:56           ` Russ
2001-08-14  7:32             ` efficient vector/matrix operations in Fortran, was Re: ... " tmoran
2001-08-14 14:05             ` efficient vector/matrix operations " Ted Dennison
  -- strict thread matches above, loose matches on Subject: below --
2001-08-07 11:36 Gautier Write-only-address
2001-08-14 12:37 Gautier Write-only-address
replies disabled

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