[GiNaC-devel] Domain of symbol

Vladimir V. Kisil kisilv at maths.leeds.ac.uk
Fri Nov 8 23:14:51 CET 2019


PPS And yes, using the line

	(i==0? ex(realsymbol("r")) : ex(symbol("s"))).dbgprinttree();

in the code produces the expected output.
-- 
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/
  Jupyter (Colab):         https://github.com/vvkisil/MoebInv-notebooks
  Jupyter (CodeOcean):       https://codeocean.com/capsule/7952650/tree

>>>>> On Fri, 08 Nov 2019 20:57:52 +0000, "Vladimir V. Kisil" <kisilv at maths.leeds.ac.uk> said:

  >	Dear All,
  > 
  >   Consider the code:
  > 
  > #include <iostream>
  > #include <ginac/ginac.h>
  > using namespace std;
  > using namespace GiNaC;
  > int main()
  > {
  > 	for (int i=0; i < 2; ++i)
  > 		(i==0? realsymbol("r") : symbol("s")).dbgprinttree();
  > 	
  > 	return 0;
  > }
  > 
  >   My expectation would be that it first creates a realsymbol r and then
  >   a symbol s. However, the actual output of the programme is:
  > 
  > r (symbol) @0x7fff6e472700, serial=1, hash=0x1689b718, flags=0x6, domain=0
  > s (symbol) @0x7fff6e472700, serial=2, hash=0x1689b718, flags=0x6, domain=0
  > 
  >   That is, in both cases the domain is 0 (complex) and r is not
  >   recognised as a real symbol.
  > 
  >   Shall this be corrected or did I misunderstand the concept of (A? B : C)
  >   construct?
  > 
  >   Best wishes,
  >   Vladimir
  > 
  > PS Another (less important and more disputable) question: do we want the
  >   debug output for realsymbol/possymbol look like
  > 
  > r (realsymbol) @0x7fff6e472700, serial=1, hash=0x1689b718, flags=0x6, domain=1
  > p (possymbol) @0x7fff6e472700, serial=1, hash=0x1689b718, flags=0x6, domain=2
  > 
  >   to make the class more visible?
  >


More information about the GiNaC-devel mailing list