Currently,
realpart(sqrt(a)) =>
cos(atan2(0,a)/2)*sqrt(abs(a))
This is of course correct, but not very useful.
For one thing, it gives an error for a=0.
For another, it doesn't simplify to sqrt(-a) with assume(a<=0). (Though it
does simplify to sqrt(a) for a>=0.)
Is there some way to force realpart to use asksign in cases like this? I
seem to remember that that was always what it did, but I couldn't find a
discussion of a change in my mail archives.
As we improve support for conditionals, another useful value would be (if
a>0 then sqrt(a) else 0) -- or maybe (if a>=0 then sqrt(a) else 0). But
again, currently we have the problem that the simplifier doesn't do a very
good job on expressions like this.
-s