Bugs item #1977146, was opened at 20080528 23:37
Message generated for change (Comment added) made by crategus
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=104933&aid=1977146&group_id=4933
Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: Lisp Core  Simplification
Group: None
>Status: Closed
>Resolution: Fixed
Priority: 5
Private: No
Submitted By: Robert Marik (robertmarik)
Assigned to: Nobody/Anonymous (nobody)
Summary: radexpand does not work as explained in documentation
Initial Comment:
>From maxima discussion list:
Maxima manual states the following

When radexpand is false, certain transformations are inhibited. radcan (sqrt (1x)) remains sqrt (1x) and is not simplified to %i sqrt (x1). radcan (sqrt (x^2  2*x + 11)) remains sqrt (x^2  2*x + 1) and is not
simplified to x  1.

Neglecting the typo in radcan (sqrt (x^2  2*x + 11)) which should be probably radcan (sqrt (x^2  2*x + 1)), I get the answer x1 also with radexpand:false. Moreover, sqrt(1x) remains sqrt(1x) even with radexpand:true.
Is the documentation of radcan obsolete?
Robert Marik
reponse of Richard Fateman
radexpand was inserted by someone else, after the code was written in 1970. I do not know if the documentation or the program is buggy, since I'm not sure what was intended.
RJF

>Comment By: Dieter Kaiser (crategus)
Date: 20091130 00:53
Message:
The description of the option variable radexpand has been cut out from the
documentation of radcan. radexpand has no effect on radcan.
Furthermore, the description of the option variable %e_to_numlog has been
cut out.
Closing this bug report as fixed.
Dieter Kaiser

Comment By: Dieter Kaiser (crategus)
Date: 20091128 23:40
Message:
I think the option variable radexpand controls the simplification of the
power function, but does not control the function radcan. This is wrongly
documented.
radexpand works for expressions like (x*y)^a and (x^a)^b. Some examples
are:
(%i2) radexpand:false$
(%i3) (x*y)^a;
(%o3) (x*y)^a
(%i4) (x*y)^a,radexpand:true;
(%o4) (x*y)^a
The expression simplifies, if radexpand is set to ALL:
(%i5) (x*y)^a,radexpand:all;
(%o5) x^a*y^a
(%i6) (x^a)^b;
(%o6) (x^a)^b
(%i7) (x^a)^b,radexpand:true;
(%o7) (x^a)^b
The expression simplifies, if radexpand is set to ALL:
(%i8) (x^a)^b,radexpand:all;
(%o8) x^(a*b)
Both expressions simplify only, if radexpand is set to ALL. Therefore, the
value ALL has the effect, that all variables are assumed to be positive and
real.
With a value of TRUE, radexpand controls the simplifcation of the power
function for even and odd rational numbers.
For an even rational power we do not get a simplification:
(%i12) (x*y)^(1/2);
(%o12) sqrt(x*y)
(%i13) (x*y)^(1/2),radexpand:true;
(%o13) sqrt(x*y)
But we get a simplification for an odd power, if radexpand is set to
TRUE:
(%i14) (x*y)^(1/3);
(%o14) (x*y)^(1/3)
(%i15) (x*y)^(1/3),radexpand:true;
(%o15) x^(1/3)*y^(1/3)
The function radcan simplifies the above expressions with power functions
too, but does not depend on the flag radexpand:
The flag is set to FALSE:
(%i34) radexpand;
(%o34) false
radcan simplifies the expressions. The flag radexpand does not matter:
(%i35) radcan((x*y)^a);
(%o35) x^a*y^a
(%i36) radcan((x^a)^b);
(%o36) x^(a*b)
Therefore, radcan always assumes the variables to be positive and real.
In a first step, all of these should be documented more clearly.
Dieter Kaiser

You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=104933&aid=1977146&group_id=4933
