Bill Gosper just sent me this message about how 'trigsign' works in Macsyma (not Maxima!).
Is there any chance that Maxima could get smarter about the ability to move 'signum()' in and out of odd functions?
Maxima seems to know a lot about abs(), but relatively little about signum(), which is amazing, since they are so closely related.
If x is real, then
x*signum(x) => abs(x)
abs(x)*signum(x) => x
Also, if x/=0, then signum(x)^2=1.
Here's what Gosper sent me:
In Macsyma 2.4,
(c16) TRIGSIGN;
(d16) true
(c17) ASINH(SIGNUM(A)*B);
(d17) signum(a) asinh(b)
(c18) BLOCK([TRIGSIGN : FALSE],ASINH(SIGNUM(A)*B));
(d18) asinh(signum(a) b)
(c19) ASINH(SIGNUM(A)*B*(-1)^INTEGER);
integer
(d19) signum(a) asinh(b) (- 1)