However I do NOT have a problem with Dan's& Michel's (13 Jan) "convert =
to sortable, take the average" idea. (BTW I found this is a neat way to =
do interval division using the same [min of 4 values, max of 4 values] =
method that works for multiplication.) This is a standard function that =
can ONLY exist at Level 2, and only for inf-sup types -- but I see no =
reason to disallow it for those reasons.
I must admit I had to go back through my mail to find
Dan& Michel's "convert to sortable& average" idea. :-)
But yes, this is a sort of geometric mean for level 2
floating-point numbers that has been used for similar
things in the past.
Michel, it looks like a Level 2 concept to me. It's only your proposed =
implementation that is Level 4.
Agreed. It can be described at level 2 as the median of
all floating-point numbers between lo& hi whatever
their values. But chances are the best way to implement
it would be at level 4 along the lines Michel describes.
Since it is finding a value that has (roughly) as many floating point =
datums above it as below it, might it be called the "median"?
I think this would be best. It does not confuse it with
the midpoint& other styles of split could have other
names.
But I must say that I don't believe this will be needed.
Perhaps others have a good application. Anyone?
The Hack-Zuras "convert to sortable ..." implementation of this _looks_ =
scale-independent, but it isn't. My intuition says that its effective =
scale is governed by MINREAL, the smallest positive normal number. If =
used on a large interval surrounding zero, its result will be biased by =
the vast set of very small FP numbers. (I will try to substantiate this =
guess.)
Your intuition is correct. In the past, such things are
(at least nearly) scale independent only so long as the
scale get no where near either minReal or maxReal. And
it is also correct that for intervals that include zero,
the split is almost always very near zero because there
are so many numbers near zero.
Perhaps this is another good reason for not implementing
this function.