Denis Koroskin wrote:
On Tue, 30 Dec 2008 17:30:13 +0300, Frits van Bommel <[email protected]> wrote:

Bill Baxter wrote:
Merging might be useful there too --- A ~= b ~ c ~ d  is probably more
efficiently implemented as 3 ~= ops.

Actually, it's probably most efficiently implemented as 1 "~=" with multiple parameters. (DMD already does this for arrays)

Perhaps, not not general enough:

A += a * b - c / d; // how to do this one?

That's a very different case, IMHO. Look at Don's posts for an answer to that one.

I think '~' and '~=' are more likely to allocate if used for their conventional meaning (adding items to some form of collection). When performing this operation in-place several times on the same collection it's quite possibly more efficient to do one big allocation instead of several small (temporary) ones by pre-calculating the required space.


Your example is likely most efficiently implemented as something like
  A += a * b;     // Something like FMULADD?
  A -= c / d;     // Do FDIVADD-like instructions exist?
for most implementations.
(I think Don's suggested semantics should result in this, assuming sufficient optimization)

Reply via email to