From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: Real_Arrays on heap with overloaded operators and clean syntax
Date: Mon, 23 Jan 2023 09:28:46 +0100 [thread overview]
Message-ID: <tqlgfv$1alo$1@gioia.aioe.org> (raw)
In-Reply-To: 2801afb2-045f-4fec-b41e-f83b2c80e672n@googlegroups.com
On 2023-01-22 23:36, Jim Paloander wrote:
> I was not sure whether or not it can be avoided with Implicit_Dereference,
>
> type Accessor (Data: not null access Element) is limited private
> with Implicit_Dereference => Data;
If you create a new wrapper type, anyway, then it is easier to define
operations directly on that new type.
> Otherwise what you described for operator+ one has to do for every operator overloaded inside Real_Arrays package.
You should not use the standard library anyway. It is not intended for
large problems, which require specific approaches and methods, like
sparse matrices, concurrent processing and so on.
> The optimal way to work large linear algebra problem is what you describe because unfortunately ADA does not allow what Fortran does since 30 years ago or more.
I am not sure what you mean. It is quite possible to design a wrapper
datatype allocating vectors/matrices in the pool. E.g. Ada's
Unbounded_String is such a thing. Real_Arrays were not designed this way
because see above.
> But in C++ you can reproduce the same functionality as Fortran using Expression Templates and Template Metaprogramming.
Nothing prevents you from wrapping Real_Array in a generic way:
generic
with package Real_Arrays is new Numerics.Generic_Real_Arrays (<>);
package Generic_Pool_Real_Arrays is
...
end Generic_Pool_Real_Arrays;
> Perhaps ADA should allow something like that. Because for maintainability reasons the best would be to write the mathematical expressions as close as possible to the mathematical formulas.
There is no problem with that as you can define operations on pointers.
--
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de
next prev parent reply other threads:[~2023-01-23 8:28 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-01-22 21:34 Real_Arrays on heap with overloaded operators and clean syntax Jim Paloander
2023-01-22 21:56 ` Joakim Strandberg
2023-01-22 22:07 ` Jim Paloander
2023-01-22 22:42 ` Joakim Strandberg
2023-01-22 22:49 ` Jim Paloander
2023-01-22 23:11 ` Joakim Strandberg
2023-01-22 23:14 ` Gautier write-only address
2023-01-23 1:14 ` Leo Brewin
2023-01-23 6:01 ` Jim Paloander
2023-01-23 8:39 ` G.B.
2023-01-22 22:13 ` Dmitry A. Kazakov
2023-01-22 22:36 ` Jim Paloander
2023-01-23 8:28 ` Dmitry A. Kazakov [this message]
2023-01-24 1:04 ` Jim Paloander
2023-01-24 10:42 ` J-P. Rosen
2023-01-25 9:52 ` Jim Paloander
2023-01-25 12:21 ` J-P. Rosen
2023-01-25 22:41 ` Gautier write-only address
2023-01-26 19:08 ` Jim Paloander
2023-01-22 23:18 ` Rod Kay
2023-01-22 23:20 ` Jim Paloander
2023-01-22 23:34 ` Rod Kay
2023-01-22 23:53 ` Joakim Strandberg
2023-01-23 7:50 ` Egil H H
2023-01-23 8:51 ` J-P. Rosen
2023-01-23 6:34 ` Rod Kay
2023-01-23 6:56 ` Jim Paloander
2023-01-23 7:31 ` Rod Kay
2023-01-24 19:47 ` Gautier write-only address
2023-01-24 23:02 ` Gautier write-only address
2023-01-25 9:50 ` Jim Paloander
2023-01-26 20:39 ` Jerry
2023-01-26 21:52 ` Jim Paloander
2023-02-02 21:59 ` Jerry
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox