"radcan does not change the sign of an expression. It chooses an
interpretation
for radical expressions in a manner that is consistent within that
expression."
This is prone to misinterpretation by other maxima functions like draw, plot
and integrate and diff
"It does not refer to assumptions, though it appears that other programs use
assumptions either on the argument to radcan, which is simplified
before calling
radcan, or on the output from radcan, which is simplified before display."
I guess.
"radcan itself never produces abs().
You (and others) seem to think that sqrt( (x^2-2*x+1)/x) is equal to
sqrt(1/x)*abs(x-1).
It is not."
Semantics. If you intend to integrate the result then you should simplify
with something other than radcan.
"(defun h(x) (* (sqrt(/ 1.0 x))(abs (1- x))))
(defun g(x) (sqrt (/ (+ (* x x)(* -2 x) 1) x)))
evaluate at i = (complex 0 1.0)
(h i) is 1 - i
(g i) is 0-1.414 i
Does this matter? I think so."
I understand your point but other Maxima command don't.
"Can you solve anything by (assume x>0) or some such thing?
It works only for trivial cases. You are not solving the problem;
merely papering over some demo cases.
Unfortunately.
this is not a new problem, it was being considered at least between
(say) 1963 and now.
People have been writing papers on some variant of this topic (e.g.
denesting radicals) for decades. So maybe it is not so easy."
>
>