Hello, On Sat, 22 Nov 2003, Richard B. Kreckel wrote:
It would be helpful (for us and yourself, probably) to quickly whip up a list of what exactly you want to do with the conjugation. On numeric types it's clear. On polynomials, there wouldn't be much you can do, probably, because you cannot just stick assumptions on free symbols.
I would just assume that all symbols are real. If a user then wants complex ones, he can have additionally a list looking like {a==astar,astar==a,b==bstar,bstar==b} and do something like conjugate(x).subs(symbolconjs) if he wants conjugation.
On other functions without any free symbols involved, what would you expect? Would you expect a transformation like this one being performed by the evaluator? conjugate(sin(2)) -> sin(2) Oops! Knowledge about sin() would be needed...
I would say that the default behaviour of functions should be conjugate(f(arg)) --> f(conjugate(arg)). Then there should be a new function option to specify a different behaviour for your particular function. I was wondering a bit about what to do with the log. For that function the default behaviour is okay, except for the real negative axis. I would say that just bluntly using the default behaviour, ignoring possible problems, would be best.
but I do not know yet how to implement it.
Bye, Chris Dams