Automated algebra runs more smoothly when functions are defined for the
entire extended complex plane, including various infinities. Dealing with
error throws that aren't caught internally is beyond many user's patience
or mathematical and programming sophistication for a particular computer
algebra system.
There is often a useful generalization for functions that were
originally designed for only a proper subset of that extended complex plane.
Derive and the TI-92 CAS define sign (0 + 0*i) as the unit circle in
the complex plane, and sign of any other complex number as its radial
projection onto the unit circle. This completion greatly simplified
implementation throughout the systems and enables useful results that don't
require dealing with uncaught error throws.
An alternative generalization would be sign (a + b*i) --> sign(a) +
sign(b)*i, but I suspect that would have less useful properties.
-- david stoutemyer
On Sat, May 25, 2013 at 4:54 AM, Richard Fateman
<fateman at eecs.berkeley.edu>wrote:
> integrate(sqrt(tan(x)^2 + 2 * tan(x) + 2),x);
>
> sign: argument cannot be imaginary; found %i
> -- an error. To debug this try: debugmode(true);
>
> says version 5.25.1
> ______________________________**_________________
> Maxima mailing list
> Maxima at math.utexas.edu
> http://www.math.utexas.edu/**mailman/listinfo/maxima<http://www.math.utexas.edu/mailman/listinfo/maxima>
>