can't subs(lst) on a function

Chris Dams chrisd at sci.kun.nl
Thu May 23 12:45:56 CEST 2002


Hello,

I use GiNaC version 1.0.8 (and gcc version 3.0.1) and found out that the
only subs-method that can be used with an exprseq is

	ex subs(const lst & ls, const lst & lr, bool no_pattern = false)

The consequence seems to be that (since a function is derived from a
exprseq) that I am allowed to write

	ex e=sin(x*y+x);
        cout << e.subs(lst(x==-2,y==4)) << endl;

which gives the expected result sin(-10), but I am not allowed to write

	cout << sin(x*y+x).subs(lst(x==-2,y==4)) << endl;

because this causes the error:

test.C: In function `int main(int, char**)':
test.C:9: no matching function for call to
`GiNaC::function::subs(GiNaC::lst)
   const'
/usr/local/include/ginac/exprseq.h:84: candidates are: virtual GiNaC::ex
   GiNaC::exprseq::subs(const GiNaC::lst&, const GiNaC::lst&, bool =
false)
   const

I think another subs-method should be added to exprseq so that this error
no longer occurs.

Greetings,
Chris Dams




More information about the GiNaC-devel mailing list