Hello, I'm trying to use the ginac parser, but doesn't work as expected. Page 81 of GiNaC 1.5.7 (an open framework ...) tutorial (29 march 2010) " It’s also possible to map input (sub)strings to arbitrary expressions: GiNaC::symbol x, y; GiNaC::symtab table; table["x"] = x+log(y)+1; GiNaC::parser reader(table); GiNaC::ex e = reader("5*x^3 - x^2"); " but I get the error terminate called after throwing an instance of 'std::invalid_argument' what(): find_or_insert_symbol: name "x" does not correspond to a symbol Abandon function find_or_insert_symbol in file ginac/parser/parse_context.cpp:49 can handle only symbols not expressions. So I tried to use only symbols and then do some subs to get the correct expression without success. GiNaC::symbol x, y; GiNaC::ex expr1 = x*y; GiNaC::ex mat1 = GiNaC::symbolic_matrix(2, 2, "K"); GiNaC::ex mat2 = GiNaC::symbolic_matrix(2, 2, "T"); GiNaC::ex expr2 = expr1.subs(GiNaC::lst(x==mat1,y==mat2)); cout << expr2 << endl; cout << expr2.evalm() << endl; and I get the error : [[K00,K01],[K10,K11]]*[[T00,T01],[T10,T11]] terminate called after throwing an instance of 'std::runtime_error' what(): matrix::mul_scalar(): non-commutative scalar Abandon do I have to use indexed objects to get the correct answer??? Thanks -- Felipe