[GiNaC-list] Substitution and re-evaluation

Vladimir V. Kisil V.Kisil at leeds.ac.uk
Wed Nov 10 11:30:56 CET 2021

	Dear Gregor,

	Just a quick question: did you re-implement eval() method for
  your class?

  Best wishes,
Vladimir V. Kisil                 http://www.maths.leeds.ac.uk/~kisilv/
  Book:      Geometry of Mobius Maps       https://doi.org/10.1142/p835
  Soft:      Geometry of cycles         http://moebinv.sourceforge.net/
  Jupyter notebooks:       https://github.com/vvkisil/MoebInv-notebooks
>>>>> On Wed, 10 Nov 2021 09:47:17 +0100, Gregor Kälin <kaelingre at gmail.com> said:

    GK> Hi,

    GK> I'm extending GiNaC by some new classes and ran into a problem
    GK> with subs and eval. My class, representing an integral, inherits
    GK> from basic and is essentially a container class containing
    GK> several ex's itself. The subs method, inherited from basic,
    GK> works as expected for the substitution step, but does not
    GK> re-evaluate the expression (i.e. the eval function of my class
    GK> is not called after the substitution happened). The tutorial
    GK> states "All GiNaC methods that transform expressions, like
    GK> subs() or normal(), automatically re-evaluate their results."
    GK> and, hence, I would expect that the default subs method of the
    GK> basic class calls eval somewhere in the process.  Is this a bug
    GK> in basic::subs or am I supposed to take care of a re-evaluation
    GK> of my custom classes myself (i.e. essentially overriding subs
    GK> and calling eval explicitly in the process)?  Looking into the
    GK> source code (I'm on commit 9197695fc, ginac version 1.8.1-1) I'd
    GK> expect a call to eval on line 628 of basic.cpp after all
    GK> operands have been substituted, and before subs_one_level is
    GK> called.

    GK> Best,

    GK> Gregor

    GK> _______________________________________________ GiNaC-list
    GK> mailing list GiNaC-list at ginac.de
    GK> https://www.ginac.de/mailman/listinfo/ginac-list

More information about the GiNaC-list mailing list