Thread Links Date Links
Thread Prev Thread Next Thread Index Date Prev Date Next Date Index

Re: Putting features in vs. leaving them out, especially functions



Jean-Pierre and Arnold

Getting back after several days on other duties...

On 25 May 2011, at 20:12, Jean-Pierre Merlet wrote:
> On 05/25/2011 02:51 PM, Arnold Neumaier wrote:
>> On Wed, May 25, 2011 13:35, John Pryce wrote:
>>> Arnold
>>> Thanks, that modifies my opinion. But what's the justification for
>>> including these particular ones? What about something like
>>>   (log(1-x) - x)/x^2  or  (atan(x) - x)/x^3  or  ...?
>>> When you need THOSE, do you code them yourself?
>> 
>> The functions dividing the difference to a Taylor expansion by x and x^2
>> are needed for _every_ basic elementary function to get sharp first and
>> 2nd order slopes.
>> Currently, we code them all ourselves, but this is slow. Using continued
>> fractions or lookup tables would be better, but we weren't patient enough
>> to do it.
>> 
> I agree with Arnold. The only difference is that we are using symbolic software do the job for us: possibly leading to a non optimal enclosure (compared to a form that has been tuned by hand) but less work and error-free..

OK. It seems there is no obvious best list of functions of this kind, and there's no point in long arguments over stuff that isn't "required". So I propose amending the "recommended functions" subclause to give a bit of motivation on these lines:

> {\em First-} and {\em second-order slopes} are techniques of improving interval enclosures. For their effective use it is desirable that whenever an elementary function f(x) has a Taylor series expansion at x=x_0, say f(x_0+s) = a_0 + a_1 s + a_2 s^2 + ..., there should be available a tight interval extension of the {\em first-order slope function}
>    slope_1(s;f,x0) = a_1 + a_2 s + a_3 s^2 + ... = (a(x_0+s)-a(x_0))/s,                provided a_1 \ne 0;

> and {\em second-order slope function}
>    slope_2(s;f,x0) = a_2 + a_3 s + a_4 s^2 + ... = (a(x_0+s)-a(x_0)-a'(x_0)s)/s^2,     provided a_2 \ne 0.

> For exponential, logarithmic, trigonometric and hyperbolic functions, because of identities such as cos(x0 + s) = ..., sufficient accuracy is obtained by providing slope functions at one standard point x_0. Therefore implementations are recommended to provide interval extensions for at least the following functions
>    expSlope1(x) = slope_1(x; exp,0) = (e^x-1)/x
>    expSlope2(x) = slope_2(x; exp,0) = (e^x-1-x)/x^2
>    etc ...

Jean-Pierre, Arnold: 
Have I got the right end of the stick? Is it agreed that the slope functions Juergen listed are the most important? Why is log() omitted? Is, say, arcsin() omitted because there are no simple addition theorems etc that relate the slope at an arbitrary point to the slope at 0?

Regards

John Pryce