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

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>