(%i1) limit(imagpart(acos(x)), x, minf);
(%o1) infinity
(%i2) limit(imagpart(acos(x)), x, inf);
(%o2) inf
%o1 is clearly wrong. The imaginary part is by definition real, so it can't be infinity (which means complex). The correct answer is minf. %o2 is correct.
imagpart(acos(x)) seems to be correct:
(%i3) at(imagpart(acos(x)), x = -1000.0);
(%o3) - 7.600902209541989
(%i4) at(imagpart(acos(x)), x = -10000.0);
(%o4) - 9.903487550036127
(%i5) at(imagpart(acos(x)), x = -100000.0);
(%o5) - 12.206072645505174
(%i6) at(imagpart(acos(x)), x = -100000000.0);
(%o6) - 19.11382792451231
For
asin, we have the same problem, but in the other direction.Also:
csign(imagpart(acos(x)))andcsign(imagpart(asin(x)))both result incomplex. That's unfortunate!Turns out this is caused by Maxima simplifying
log(x^2)to2*log(x), when the correct answer for realxis2*log(abs(x)). I'm testing this, but it will likely break many things.