[GiNaC-devel] Fwd: Add method ex::symbols for obtaining all symbols appearing in an expression

Richard B. Kreckel kreckel at ginac.de
Wed Aug 22 00:51:39 CEST 2012


Hi!

On 08/14/2012 11:00 AM, Timo Kluck wrote:
> 2012/8/14 Richard B. Kreckel<kreckel at ginac.de>:
>> There remains Alexei's worry that this is likely to substantially slow down
>> all applications.
> I think his worry related to my initial suggestion for doing this at
> construction time. I think that just adding a member function
> implementing its own cache shouldn't add overhead to applications not
> using it. (The only difference would be the constructor having to
> initialize the cache to NULL).

That is correct.

How would you manage that list of symbols? One may have to take care 
about when to destroy it, in order not to break refcounting and create a 
memory leak, I suppose.

> Do you happen to know what the reason was for forking?

Sage already had its own number system and didn't want to bring another 
one (CLN). Also, there wasn't much interest in some of the special 
algebra for high energy physics. No worries.

> There would be no memory leak if the cache were to live in the object.

That's correct, too.

Still, you should carefully benchmark your proposal to see if it really 
helps. If it does, and if a .symbols() MF is really a bottleneck in some 
applications, then, well, why not add it to GiNaC?

And, please, discuss this with the Pynac developers, too, for the 
obvious reasons.

Cheers
   -richy.
-- 
Richard B. Kreckel
<http://www.ginac.de/~kreckel/>



More information about the GiNaC-devel mailing list