[GiNaC-list] Error on expression

Vladimir V. Kisil kisilv at maths.leeds.ac.uk
Tue Mar 14 00:24:50 CET 2017

>>>>> On Mon, 13 Mar 2017 23:42:12 +0100, Jean-Michaël Celerier <jeanmichael.celerier at gmail.com> said:

  GiNaC::ex e = p("2*cos(x)+e^x");

  This conversion leaves e^x to be "a symbol e to power x", where e is
  GiNaC::symbol and is not the base of natural logarithms. This cannot
  be converted to a double and produces the quoted error.

  The following (simpler) code produces the correct answer:


int main(int argc, char* argv[])
	GiNaC::symtab table;
	table["x"] = 2.34;
	GiNaC::parser p(table);
	GiNaC::ex e = p("2*cos(x)+exp(x)");
	GiNaC::numeric n = GiNaC::ex_to<GiNaC::numeric>(e);
	double x = n.to_double();
	std::cout << x << std::endl;
	return 0;

  Best wishes,
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/

More information about the GiNaC-list mailing list