Re: Motion P1788/M0032.01:MidpointMeaning -- discussion period begins
Dan,
I agree with your Level 2 definition of mid .
And I have a small note on level 1 definition.
John's Level 1 draft defines domain level 1 "mid" function as
nonempty bounded intervals only.
This motion defines it for semi-infinite intervals also.
This means that Level 1 mid(X)=mid([u,+oo[)=(u + oo)/2 = +oo .
This seems natural.
However, it violates the formulated property
mid(X) \element-of (X1 \intersect X2)
+oo can't belong to (X1 \intersect X2) because level 1 intervals are
sets of reals.
Is the domain of Level 1 definition of "mid" in the scope of this motion ?
-Dima
----- Исходное сообщение -----
От: intervals08@xxxxxxxxxxxxxx
Кому: rbk@xxxxxxxxxxxxx
Копия: stds-1788@xxxxxxxxxxxxxxxxx, intervals08@xxxxxxxxxxxxxx
Отправленные: Пятница, 9 Март 2012 г 17:09:43 GMT +04:00 Абу-Даби, Маскат
Тема: Re: Motion P1788/M0032.01:MidpointMeaning -- discussion period begins
> Date: Fri, 09 Mar 2012 06:49:51 -0600
> From: Ralph Baker Kearfott <rbk@xxxxxxxxxxxxx>
> To: Dan Zuras Intervals <intervals08@xxxxxxxxxxxxxx>
> CC: stds-1788@xxxxxxxxxxxxxxxxx
> Subject: Motion P1788/M0032.01:MidpointMeaning -- discussion period begins
>
> P1788 participants:
>
> Since this motion has been made by Dan Zuras and seconded
> by George Corliss, the discussion period now formally begins.
> Discussion will continue until after the end of March 30,2012.
>
> The motion and its rationale, as made by Dan, are appended.
>
> Juergen: Please update the web page with this information.
>
> Thank you, everyone, for your continuing work.
>
> Sincerely,
>
> Baker
>
Baker,
Please use this text.
Michel pointed out a mistake & I found
another error in the stopping formula.
Thanks. - Dan
To: Ralph Baker Kearfott <rbk@xxxxxxxxxxxxx>,
"Corliss, George" <george.corliss@xxxxxxxxxxxxx>
Cc: Dan Zuras Intervals <intervals08@xxxxxxxxxxxxxx>
From: Dan Zuras Intervals <intervals08@xxxxxxxxxxxxxx>
Subject: Another oops...
Date: Fri, 09 Mar 2012 02:27:46 -0800
Oops, I found a mistake in the example stopping criteria
formula in the rationale. Here is the fix. Sorry but
that's what I get for reading it over & over & over. - Dan
To: stds-1788@xxxxxxxxxxxxxxxxx
Cc: Dan Zuras Intervals <intervals08@xxxxxxxxxxxxxx>
From: Dan Zuras Intervals <intervals08@xxxxxxxxxxxxxx>
Subject: Midpoint in the waters between Scylla and Charybdis...
Date: Thu, 08 Mar 2012 17:40:09 -0800
Folks,
We have argued about only one function in all my table
4 proposal. As a result, George suggested that I extract
midpoint only & make a motion about that. So here are
both the midpoint motion & arguments pro & con below.
It is hard to navigate between Scylla and Charybdis.
It is impossible when the crew argue about the course.
Let's decide now.
Dan
I move the following:
<begin motion for midpoint>
The midpoint function for non-Empty, non-Entire intervals
---------------------------------------------------------
At level 1: mid(X) = (inf(X) + sup(X))/2
Properties: For intervals X & Y & when using midpoint to
split an X into X1 & X2 we have
X \subset (X1 \union X2)
[inf(X),mid(X)] \subset X1
[mid(X),sup(X)] \subset X2
mid(X) \element-of (X1 \intersect X2)
X \subset Y ==> if (inf(X)==inf(Y)) then mid(X) <= mid(Y)
X \subset Y ==> if (sup(X)==sup(Y)) then mid(X) >= mid(Y)
always. These are required. The first 4 properties are
required for containment to hold. The last 2 for weak
ordering.
Coercion to level 2: For some implicit or explicit IFbar
based on a some floating-point system F we have that
mid_F(X) = if ((inf(X) == -inf) && (sup(X) == +inf)) then 0
else if (round2Nearest_F(mid(X)) == +inf)
then nextDown_F(+inf)
else if (round2Nearest_F(mid(X)) == -inf)
then nextUp_F(-inf)
else round2Nearest_F(mid(X))
Note that midpoint has been generalized to include Entire via
the means of the arbitrary choice of zero as its midpoint.
This choice is part of this motion. Midpoint is still not
defined for Empty & any generalization to include Empty is
not part of this motion.
The coercion mid_F(X) always returns a finite result even
when mid(X) is infinite.
If, for any X & Y that live at level 2, we define intervals
X1 & X2 to be the smallest representable intervals for which
[inf_F(X),mid_F(X)] \subset X1 & [mid_F(X),sup_F(X)] \subset
X2 we have
X \subset (X1 \union X2)
[inf_F(X),mid_F(X)] \subset X1 (trivially)
[mid_F(X),sup_F(X)] \subset X2 (trivially)
mid_F(X) \element-of (X1 \intersect X2)
X \subset Y ==> if (inf_F(X)==inf_F(Y)) then mid_F(X) <= mid_F(Y)
X \subset Y ==> if (sup_F(X)==sup_F(Y)) then mid_F(X) >= mid_F(Y)
The first 4 assure containment. The last 2, weak ordering.
<end motion for midpoint>
<begin rationale>
The reason for midpoint to exist is to narrow intervals
via the method of splitting them. At level 1 that is to
take an interval X & replace it with the union of X1 & X2
such that
X \subset (X1 \union X2).
[inf(X),mid(X)] \subset X1
[mid(X),sup(X)] \subset X2
mid(X) \element-of X1 \intersect X2
These properties are required for containment. It is
desirable that X1 & X2 be the smallest intervals that
have this these properties which leads to further
properties
width(X1) < width(X)
width(X2) < width(X)
width(X1) = width(X2)
but these properties will not always be possible. EVEN
AT LEVEL 1. But there is another useful pair of properties
that ARE true at level 1
X \subset Y ==> if (inf(X)==inf(Y)) then mid(X) <= mid(Y) &
X \subset Y ==> if (sup(X)==sup(Y)) then mid(X) >= mid(Y)
and, with some care, these can even be made to survive the
coercion to level 2.
The coercion to level 2 gives us the translated properties
X \subset (X1 \union X2)
[inf_F(X),mid_F(X)] \subset X1 (trivially)
[mid_F(X),sup_F(X)] \subset X2 (trivially)
mid_F(X) \element-of (X1 \intersect X2)
X \subset Y ==> if (inf_F(X)==inf_F(Y)) then mid_F(X) <= mid_F(Y)
X \subset Y ==> if (sup_F(X)==sup_F(Y)) then mid_F(X) >= mid_F(Y)
Again, the first 4 are required for containment & the last
2 for weak ordering. There are other properties we would
like but they can, at best, only be approximated. These
approximations are
width_F(X1) <= width_F(X)
width_F(X2) <= width_F(X)
width_F(X1) ~= width_F(X2)
which are approximations of
width_F(X1) = width_F(X)/2
width_F(X2) = width_F(X)/2
width_F(X1) = width_F(X2)
Indeed, some measure of these approximate properties can
be used as criteria for stopping one's search. There are
many possibilities, depending on one's needs. For example
if (((width_F(X) == inf) &&
(width_F(X1) > 0) &&
(width_F(X2) > 0)) ||
((width_F(X) < inf) &&
(width_F(X1) < width_F(X)) &&
(width_F(X2) < width_F(X)))) then continue splitting
else stop
works (as far as I can tell).
There is an argument that mid(Entire) should be undefined
or should return a NaN.
The merit to this argument is that it is mathematically
true that the Reals, although ordered, have no midpoint.
Stated in this way it is reasonable to say that it is a
mistake to return a number for the midpoint(Entire).
Therefore, the only reasonable answer is NaN.
It is equivalent to say that, for any Real number r, a
one-to-one correspondence exists between r-x & r+x for
all Real x that encompasses all Reals. Stated in this
way it is reasonable to say that the midpoint of the
Reals is not unique in that ANY Real is a correct
midpoint(Entire). That is, any arbitrary Real r is a
correct (but not unique) midpoint(Entire).
Therefore I arbitrarily choose zero as midpoint(Entire).
The value of midpoint(Empty) is not part of this motion.
There is an argument that if midpoint cannot return an
interior point of X then it should return NaN. As
singleton intervals HAVE no interior even at level 1,
this would mean that midpoint([r,r]) = NaN for all Real r.
Further, that finite intervals for which inf(X) > Fmax_F
for some number system F should return midpoint_F(X) = NaN
on the grounds that neither Fmax_F nor +inf are in the
interior of X.
Further, that intervals for which X lies entirely between
two consecutive representable numbers of F should return
midpoint_F(X) = NaN on the grounds that neither number is
in the interior of X.
I reject all 3 of these arguments.
In the first case, I find it unreasonable to define
anything other than midpoint([r,r]) = r on the grounds
that the midpoint is perfectly well defined in the case
of singletons & one should expect this to be so.
I reject the other two on the grounds that the property
of "interiorness" is a derived one which fails in these
two cases not due to any failure in the definition of
midpoint but due to limited range & limited precision,
respectively, of the number system within which one is
forced to express the answer.
The best approximation is the nearest finite number to
the well defined Real number & is the correct & expected
result. Even without being in the interior of X it still
possesses the well defined properties we need of the
midpoint function. Those of containment & weak-ordering
among them.
That having been said, midpoint_F will STILL return an
interior point of X so long as X HAS interior points
representable within F. It is the best approximation
of interiorness available to us.
It is argued that midpoint(Empty) should be NaN.
Midpoint(Empty) is not part of this motion.
Let that be settled at a later date.
<end rationale>