"Richard B. Kreckel" wrote:
There doesn't seem to be enough information to judge what's going on. I don't know how you allocate expressions. Can you strip this problem down to the bare GiNaC-C++-layer? I would bet you'll find the problem anyways, while doing so, though...
I did this and you are right I did find the problem. I ended up changing a function from this: GiNaC::symbol octave_sym::sym_value () const { return x; } to this: GiNaC::symbol octave_sym::sym_value () const { return ex_to_symbol(GiNaC::ex(*(x.duplicate ()))); } Octave classes overload the new operator and sometimes octave types get created as a const value. This was also causing me other problems relating to the fact that GiNaC does reference counting. An ex variable might be a const and GiNaC might change the reference count. This caused my code to crash in unpredictable ways. I can't say I completely understand why the particular assertion failed, but it does not seem to be a problem any more. Thanks. -- Ben Sapp Los Alamos National Laboratory email: <mailto:bsapp@lanl.gov> Phone: (505)667-3277 Fax: (505)665-7920 URL: http://www.neutrino.lanl.gov/ -- - To UNSUBSCRIBE, email to ginac-list@ginac.de with a subject of "unsubscribe".