radcan() simplification error.



Dear List,

Any assistance with the following would be appreciated:

(1) The function radcan() seems to simplify the following expression correctly:

(%i98) radcan(sqrt(a^2)/sqrt(4*%pi^2*(q0-2000)^2));

(%o98) abs(a)/(2*%pi*abs(q0-2000))
(%i99) 

(2) However, for the following more complicated expression, radcan() seems to simplify the denominator incorrectly:

(%i99) radcan(sqrt((sin(2*%pi*pmin*(q0-q))-sin(2*%pi*pmax*(q0-q)))^2/(4*%pi^2*(q0-q)^2)+(cos(2*%pi*pmin*(q0-q))-cos(2*%pi*pmax*(q0-q)))^2/(4*%pi^2*(q0-q)^2)));

rat: replaced 2.0 by 2/1 = 2.0

rat: replaced 2.0 by 2/1 = 2.0

rat: replaced 2.0 by 2/1 = 2.0

rat: replaced 2.0 by 2/1 = 2.0

rat: replaced 2.0 by 2/1 = 2.0

rat: replaced 2.0 by 2/1 = 2.0

rat: replaced 2.0 by 2/1 = 2.0

rat: replaced 2.0 by 2/1 = 2.0
(%o99) sqrt(sin(2*%pi*pmin*q0-2*%pi*pmin*q)^2
             -2*sin(2*%pi*pmax*q0-2*%pi*pmax*q)
               *sin(2*%pi*pmin*q0-2*%pi*pmin*q)
             +cos(2*%pi*pmin*q0-2*%pi*pmin*q)^2
             -2*cos(2*%pi*pmax*q0-2*%pi*pmax*q)
               *cos(2*%pi*pmin*q0-2*%pi*pmin*q)
             +sin(2*%pi*pmax*q0-2*%pi*pmax*q)^2
             +cos(2*%pi*pmax*q0-2*%pi*pmax*q)^2)
        /(2*%pi*q0-2*%pi*q)
(%i100) 


(3) On the other hand, radcan() seems to take into account some facts specified by the
assume() statement in the example below. Do other Maxima built-in simplification functions
take specified constraints into account ?

(%i101) assume(q0>=2000);

(%o101) [q0 >= 2000]
(%i102) radcan(sqrt(a^2)/sqrt(4*%pi^2*(q0-2000)^2));

(%o102) abs(a)/(2*%pi*q0-4000*%pi)
(%i103) 


Thanks very much.
Constantine Frangos.