axiom-developer
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Axiom-developer] Complex exponentiation and 0


From: William Sit
Subject: Re: [Axiom-developer] Complex exponentiation and 0
Date: Mon, 21 Jun 2004 16:01:02 -0400

Martin Rubey wrote:
>  > (9) -> (0.0**complex(0,0))
>  >
>  >    >> Error detected within library code:
>  >    log 0 generated
>  >
>  > protected-symbol-warn called with (NIL)
>  >
>  > Addendum to my previous post: it seems that within axiom 0^0 was assumed 
> to be
>  > undefined originally:
>  >
>  > card.spad:                error "0**0 not defined for cardinal numbers."
>  > float.spad:         y = 0 => error "0**0 is undefined"
>  > float.spad:         r = 0 => error "0**0 is undefined"
>  > float.spad:         n = 0 => error "0**0 is undefined"
>  > interval.spad:    zero?(v) => if zero?(u) then error "0**0 is undefined" 
> else 1
>  > pscat.spad:            zero? r => error "0**0 undefined"
>  > sf.spad:         zero? r => error "0**0 is undefined"
>  > address@hidden algebra]$ grep -i "0 \*\* 0" *
>  > combfunc.spad:          zero? second l => error "0 ** 0"
>  > gaussian.spad:               zero? x => error "0 ** 0 is undefined"
>  > gaussian.spad:               zero? x => error "0 ** 0 is undefined"
>  > laurent.spad:        zero? x => error "0 ** 0 is undefined"
>  > laurent.spad:          zero? x => error "0 ** 0 is undefined"
>  >
>  > Martin

Except for card.spad, the other "undefined" messages seem to me justified
because of the way exponentiation is defined x^y = exp(y* log(x)), where exp is
the natural exponentiation function, say defined as the inverse of log, which is
defined as an integral from 1 to x of 1/t (dt).  Since the integral is defined
in terms of a limit (of Riemann sum), this falls under the domain specific
convention I discussed. One can evaluate the limit of x^x = exp(x * log(x)) as x
approaches 0 by evaluating first the limit of x*log(x) as x approaches 0 (which
is 0 by L'Hopital's rule) and then apply the continuity of exp, giving the value
1. However, the limit of y^x as x AND y independently approaching 0 (that is,
(x,y) approaching (0,0) on the plane) would depend on the path. For example, if
the path is along the x-axis, where y is held 0, then the limit will be
undefined because log(0) is not defined. If the path is along the y-axis, where
x is held 0, then since y^0 is 1 for any non-zero y, the limit is 1. Since ONE
of the limits does not exist, the entire 2D limit is not defined.
Since the interpretation of the notation 0^0 in these domains is not unique, it
is better to leave it undefined.

In the case of card.spad, the function x^y, where x and y are cardinal numbers
of sets X and Y respectively, x^y is the cardinal number of the set of all maps
from Y to X. 
For example, when x = 2, 2^y is the cardinality of the power set of Y. Now when
x = 0 and/or y = 0, one (or both) of X and Y is the empty set and since one
cannot define what a "map" is to or from an empty set, it may seem justified to
leave 0^y, x^0, and 0^0 undefined.

William




reply via email to

[Prev in Thread] Current Thread [Next in Thread]