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

Re: Midpoint and unbounded intervals



> (I assume that the to-me-unreadable thingy was \subset_or_equal symbol.)

Sorry for unreadable Unicode chars in my previous mail.
Also, that char was wrongly used in the monotonic property. Should be
X C= Y  =>  rad(X) <= rad(Y) 

> > 1) Should midRad(), mid(), rad() be consistent
> >   midRad(x) = ( mid(x), rad(x) ) ?
>
> Meaningful only if there is a midrad type (an "implicit" type).
> The question is, how much should 1788 say about implicit types,
> beyond the requirement that they have a well-defined hull operation?

The "midrad" representation and the "midRad" required numeric function
from the Motion 31 document are different things.
As "midRad" is required operation, it must be supported by all representations,
including "infsup". It returns a pair of mid and rad in a similar way
as  point operation "quotionRemainder" returns a pair of quotion and remainder.
The document doesn't say explicitly if "mid(x)" returns always the first component of "midRad(x)"
and "rad(x)" returns always the second component of "rad(x)"

> > 2) Should we expect the following containment for bounded intervals:
> >   x C= [ mid(x) - rad(x), mid(x) + rad(x) ] ?

> This only works for outer_rad(), i.e. rounded up.  For round-to-nearest
> radius this could fail for 2-digit DFP [0.3,10] with mid=5.2 and rad=4.8
> (rounded to even from 4.85), but outer_rad=4.9 would be ok.
>
> With inner_rad() we could claim the reverse containment.

I expect the above containment to build a centered form from the result of midRad(X)

xm = mid(X)
fm = f(xm)
then I get an enclosure of f' = df/dx on X
G = f'(X)
Then I am sure that for all x in X
f(x) in fm + (X - x) * G
f(x) in f(xm) + [-1,1] * mag(X - x) * mag(G)
If outer_rad(X) >= mag(X - xm), then I could be sure also that
f(x) in f(xm) + [-1,1] * rad(X) * mag(G)

The property outer_rad(X) >= mag(X - rad(X)) is stronger than
outer_rad = roundUp((X.sup - X.inf)/2) . An example in a 2-digit decimal arithmetic:

X = [1.0,1.1]
mid(X) = roundNear((1.0 + 1.1)/2) = roundNear(1.05) = 1.0
roundUp((X.sup - X.inf)/2) = roundIp(0.05) = 0.05
However, I expect outer_rad = mag(X - mid(X)) = mag([0,0.1]) = 0.1 

> With inner_rad() we could claim the reverse containment.

Do you know an example how inner_rad() will be used ?.

Do we need in the standard all three operations
inner_rad(X)
rad(X)
outer_rad(X) ?

Or a single rad(X) with the definition
rad(X) = roundUp(mag(X - mid(X)))
will suffice ?

  -Dima

----- Исходное сообщение -----
От: hack@xxxxxxxxxxxxxx
Кому: stds-1788@xxxxxxxxxxxxxxxxx
Отправленные: Четверг, 26 Январь 2012 г 0:30:31 GMT +03:00 Москва, Санкт-Петербург, Волгоград
Тема: Re: Midpoint and unbounded intervals

> The radius = width/2 may not work in DFP .
> Suppose precision of two decimal digits.
> width(0.1,10) = 9.9  - can be represented exactly
> width(0.1,10)/2 = 4.95 - can't be represented exactly

True -- but neither must width be exact if the magnitude of one endpoint
is more than double that of the other, in BFP as well as DFP.

You are correct that in DFP width could be exact, but rad inexact.
For BFP that only happens for subnormal endpoints.

> 1) Should midRad(), mid(), rad() be consistent
>   midRad(x) = ( mid(x), rad(x) ) ?

Meaningful only if there is a midrad type (an "implicit" type).
The question is, how much should 1788 say about implicit types,
beyond the requirement that they have a well-defined hull operation?

> 2) Should we expect the following containment for bounded intervals:
>   x C= [ mid(x) - rad(x), mid(x) + rad(x) ] ?

(I assume that the to-me-unreadable thingy was \subset_or_equal symbol.)

This only works for outer_rad(), i.e. rounded up.  For round-to-nearest
radius this could fail for 2-digit DFP [0.3,10] with mid=5.2 and rad=4.8
(rounded to even from 4.85), but outer_rad=4.9 would be ok.

With inner_rad() we could claim the reverse containment.

Michel.
---Sent: 2012-01-25 21:30:03 UTC