Re: Table 4 proposal version 0.2...
> Date: Fri, 23 Mar 2012 15:03:11 +0100
> From: Vincent Lefevre <vincent@xxxxxxxxxx>
> To: stds-1788 <stds-1788@xxxxxxxxxxxxxxxxx>
> Subject: Re: Table 4 proposal version 0.2...
>
> On 2012-03-22 17:17:28 -0400, Michel Hack wrote:
> > The problem here is that the 754 representations of Zero, Infinity
> > (and also NaN) are overloaded.
>
> and +1, because
>
> powr (+1, ±inf) signals the invalid operation exception.
>
> because +1 is regarded here as a potentially inexact number
> (contrary to the usual exact inputs).
>
> > For results, the flags can be used to distinguish the meanings, but
> > inputs are considered exact by definition.
>
> Not in the above particular case, where +1 is considered inexact.
>
> --
> Vincent Lefèvre <vincent@xxxxxxxxxx> - Web: <http://www.vinc17.net/>
> 100% accessible validated (X)HTML - Blog: <http://www.vinc17.net/blog/>
> Work: CR INRIA - computer arithmetic / AriC project (LIP, ENS-Lyon)
Vincent,
While it is true that powr(+1,+inf) signals invalid,
it is not true that this is because +1 is considered
inexact in any way.
When we were defining the power functions, we could
not agree in the several slightly different definitions
for these functions. Our only way out (as a committee)
was to define them all & deal with their slightly
different exceptions.
The pown(x,n) = x^n function was defined such that the
second operand is an integer & the result is effectively
arrived at via repeated multiplication. (Not actually,
but that is the metaphor.) The case 1^+oo does not
arise because +oo is not within bounded integers.
The pow(x,y) = x^y (with the second parameter a floating-
point number) was defined as if it were the analytic
continuation of the x^n function into the Reals. In this
case we have:
pow (+1,y) is 1 for any y (even a quiet NaN).
So 1^+oo = 1 with no exceptions.
Only in the powr(x,y) = exp(y*ln(x)) case do we have a
problem. In this case:
powr(+1,+/-inf) signals the invalid exception
because y*ln(x) = inf*0 which is itself invalid.
Not because there is any inexactitude in the value of 1.
Dan