[GiNaC-devel] Why does this program crash?
Vladimir V. Kisil
kisilv at maths.leeds.ac.uk
Sat May 14 23:03:24 CEST 2016
Dear All,
I investigated the crash. It is caused by an infinite loop of calls
in GiNaC::ex::ex at /usr/include/ginac/ex.h:265
in GiNaC::symbol::eval at /usr/include/ginac/symbol.h:49
in GiNaC::ex::construct_from_basic(GiNaC::basic const&) from /usr/lib/libginac.so.5
This happens because the assignment
symbol x("x");
x = realsymbol("y");
is done through the inherited operator
const basic & basic::operator=()
which resets the status_flags::evaluated (for different classes) and
this flag is never set again for symbols.
Now the first question is: do we really want a symbol to be assigned
through operator=? If the answer is "yes" then there is the second
question is: to repair the situation either
* an adjusted symbol::operator=() shall be provided, which sets the
flag evaluated; or
* at ex:eval() we shall set status_flags::evaluated for GiNaC::symbol and its
children?
Another option is: basic::operator= shall reset status_flags::evaluated
only if another object is not of a child class.
My understanding of GiNaC is not sufficient to take decision on this
matter.
Best wishes,
Vladimir
--
Vladimir V. Kisil http://www.maths.leeds.ac.uk/~kisilv/
Book: Geometry of Mobius Transformations http://goo.gl/EaG2Vu
Software: Geometry of cycles http://moebinv.sourceforge.net/
>>>>> On Sat, 14 May 2016 10:03:26 +0100, "Vladimir V. Kisil" <kisilv at maths.leeds.ac.uk> said:
VVK> Dear Jan,
VVK> Please accept my apology, you did send a complete
VVK> example and I have overseen that. In my opinion, the issue is
VVK> not with the inheritance as such. Symbol x is not assumed to be
VVK> a left value. There are GiNaC::ex for this.
VVK> Best wishes, Vladimir -- Vladimir V. Kisil
VVK> http://www.maths.leeds.ac.uk/~kisilv/ Book: Geometry of Mobius
VVK> Transformations http://goo.gl/EaG2Vu Software: Geometry of
VVK> cycles http://moebinv.sourceforge.net/
>>>>> On Sat, 14 May 2016 09:21:23 +0100, "Vladimir V. Kisil"
VVK> <kisilv at maths.leeds.ac.uk> said:
>>>>> On Sat, 14 May 2016 04:53:54 +0200, Jan Rheinländer <jrheinlaender at gmx.de> said:
JR> Dear Vladimir, realsymbol is not my derived class. See
JR> ginac/symbol.h !
VVK> Yes, and as far as I am aware there is no problem with
VVK> realsymbol in GiNaC. Furthermore, in my own project (see the
VVK> end of the email) I have successfully derived several new
VVK> classes following the advise from the GiNaC tutorial.
VVK> If you are looking for an assistance you need to provide a
VVK> complete piece of software, including the full description of
VVK> your derived class, which causes the issue.
VVK> Best wishes, Vladimir -- Vladimir V. Kisil
VVK> http://www.maths.leeds.ac.uk/~kisilv/ Book: Geometry of Mobius
VVK> Transformations http://goo.gl/EaG2Vu Software: Geometry of
VVK> cycles http://moebinv.sourceforge.net/
VVK> _______________________________________________ GiNaC-devel
VVK> mailing list GiNaC-devel at ginac.de
VVK> https://www.cebix.net/mailman/listinfo/ginac-devel
VVK> _______________________________________________ GiNaC-devel
VVK> mailing list GiNaC-devel at ginac.de
VVK> https://www.cebix.net/mailman/listinfo/ginac-devel
More information about the GiNaC-devel
mailing list