Nate,
since we seem to have reached an impasse, with firm but opposite
conclusions, I send this to the list for further discussion.
Arnold Neumaier
================================================================
Nate Hayes wrote:
Arnold Neumaier wrote:
Nate Hayes wrote:
Arnold Neumaier wrote:
Nate Hayes wrote:
If it is unreasonable to
expect conforming P1788 implementations will analyze for
dependence, the set
of values
{ floor(0.5+x-x) | x in [-0.25,0.25] }
is beyond the scope of P1788, since the conforming implementation
should actually be the set of values
{ floor(0.5+x-y) | x in [-0.25,0.25], y in [-0.25,0.25] }.
The truly correct answer for this latter set of values is
"notContinuous."
No. Just because no analysis should be needed, the result must be
the weakest statement valid for both floor(0.5+x-x) and
floor(0.5+x-y), hence PossiblyContinuous.
I don't think so.
IMO:
P1788 needs to define its scope and then operate consistently inside
those boundaries. If analyzing interval dependence is unreasonable
for the scope P1788 is operating at, I believe it is inconsistent to
return "possiblyContinuous" for the reasons you mention, since that
depends on analysis of interval dependence.
No. This is computed without any analysis, since it is weaker than
both IsContinuous and NotContinuous, and hence the default in the
ambiguous case.
Arnold, I understand.
Repeating yourself doesn't make the argument any more compelling.
It is _computed_ without analysis of dependence, but it also makes an
_assumption_ about the input provided by the user. This is why a
choice between the weaker must be made.
This is the flaw in your position. There should be no assumptions made
about the input given by the user, especially when contradictory
results may be the consequence. For this reason, what you propose is
an abuse of the exception handling mechanism, in my view.
The only reasonable assumption going into the interpretation of
floor(0.5+x-x) is that x is the saame variable in both occurrences.
I cannot accept that the user input floor(0.5+x-x) should be interpreted
as floor(0.5+x-y) with x and y ranging independently over the same
interval. This is never the intention of the user.
A totally new and separate mechanism in P1788 should allow users to
specify explicitly the interval dependence. Or P1788 shall define all
variables are considered as independent. What you are porposing is an
ambiguous solution that is a consequence of failing to choose one of
these other non-ambiguous alternatives.
I recommend against requiring (or even recommending) any such mechanism.
Just as sqrt(1+x-x) for x=[0,2] returns PossiblyDefined and not
IsDefined, although a dependence analysis would giver the latter.
Yes. In computer graphics, isolating discontinuities with
branch-and-bound methods is critical.
This will happen automatically with the PossiblyContinuous flag,
since ultimately this will be decided. One does not need to
know a CertainlyDisconinuous status to do the branch and bound
in this case correctly without any overhead.
On the contrary, returning "possiblyContinuous" means the interval
box can never be deleted because it might not contain a
discontinuity and therefore should remain part of the solution.
And indeed, this should be the case if your input function is
floor(0.5+x-x). With your version of the flags, you'd wrongly
delete something that is continuous.
As mentioned in the original e-mail, the algorithm bisects any box
that "isDefined" and "notContinuous" until some user-specified
tolerance is met. Then the box may be deleted safely, since it is
within the tolerance specified by the user.
If "possiblyContinuous" is returned, even when the algorithm bisects
down to
tolerance, the box can not be safely deleted because it might not
actually have a discontinuity in it.
But this is a bug in your algorithm. It should bisect any box with
isDefined and PossiblyContinuous. The PossiblyContinuous no longer
occurs for floor(0.5+x-x) when x is narrow, just as PossiblyDefined
no longer occurs for sqrt(1+x-x) when x is narrow,
Hmmm. The "bug" in my algorithm provides a rigorous isolation of
discontinuities to within tolerance. Your "solution" heuristically
deletes boxes which may or may not have discontinuities in them.
No. It never deletes anything that is only PossiblyContinuous but splits
it for further analysis.
In my view, for an interval X, if a function f(x) "isDefined" for x
in X, then f must be either "isContinuous" or "notContinuous".
This is because it
is unreasonable to assume conforming implementations will analyze
possible interval dependence caused by multiple occurences of x in
f(x), so P1788 should require each such occurence of x will be
treated as an independent variable.
No. For precisely the reason you give, P1788 must require a
statement that is valid whether or not x is treated as indepemdent.
Well, this is the crux of where we have different opinions.
But I clearly understand your position.
You didn't understand my argument, it seems to me.
I do clearly. I just don't agree with it.
Otherwise some false conclusions may result.
No false conclusions occur, as your statement above implies, if by
definition P1788 treats all occurences of a variable as independent.
The false colclusion is with your recipe that floor(0.5+x-x) is
claimed to be discontinuous although it isn't.
As I stated in the beginning of this thread, floor(0.5+x-x)
"isContinuous". Please pay attention!
But this can be recognized only by a system that can analyze dependence.
Since a typical sysstem will not do that (at least not for more complex
expressions), the only adequate decoration is PossiblyContinuous.
The problem is you are conflating, on behalf of the user,
floor(0.5+x-x) with floor(0.5+x-y).
No. These just happen to give the same result when called woth equal
intervals x and y, although they have a clearly distinguishable
interpretation.
It is exactly the same situation as with sqrt(1+x-x) and sqrt(1+x-y).
They must get the same result in any reasonable system that evaluates
the expression without analyzing it in more detail.
In my view, these are two separate mathematical problems, and P1788
should provide a mechanism to allow a user to specify exactly which is
their intent. Otherwise, P1788 should allow only floor(0.5+x-y).
The twwo strings sqrt(1+x-x) and sqrt(1+x-y) or floor(0.5+x-x) and
floor(0.5+x-y) are different enough to serve as unambiguous
specifications on the part of the user.
The user has the right to get answers that are valid for the submitted
expression as it is commonly interpreted. As always in rigorous
computations. There is no room for interpretations, except to return a
weaker statement than what would be possible with a more expensive
analysis.
This is why returning "possiblyDefined" is misleading, at best, since
it makes assumptions about the input they have provided.
No. This makes no assumptions, since it is silent about whether the
function is or is not continuous. Any other result makes an assumption,
and gives sometimes an unwarranted conclusion.
So essentially we seem to agree on everything except this last
question, i.e., should P1788 require multiple occurences of a
variable to be treated as independent or not.
The arithmetic treats them as independent, but the result returned
by the arithmetic must cater for all possiblilities (dependent or
not).
I couldn't disagree more. A sparate mechnism should allow users to
explicitly specify analysis of interval dependence is required. Or
this option should not be allowed at all. Returning "possiblyDefined"
is a punt!
It is the standard trick that allows interval techniqwues to always
provide valid results although the true ranges are often unknown:
Simply return an answer that covers all possibilities and perhaps more.
As always in rigorous computations.
Computer Algebra Systems and optimizing compilers can build on top
of this minimal requirement to analyze interval dependence and
provide less pessimistic results, of course.
Yes. But note that PossiblyContinuous is the more pessimistic
result! NotContinuous is too informative!
I am speaking of the fact that unrecognized interval dependence
provides wider interval results.
So do I. As x-x gives [-1,1] when x=[-1,1] although a dependence
analysis would give the less pessimistic [0,0], so floor(0.5+x-x)
gives PossiblyContinuous for x=[-1,1] although a dependence
analysis would give isContinuous, and floor(1+x-x)
gives PossiblyContinuous for x=[-1,1] although a dependence
analysis would give notContinuous.
Any other esult would be wrong and utterly confusing.
I believe your proposed results above are wrong and utterly confusing.
IN any case, no sense belaboring the point. At least in my mind, I'm
clear on why we disagree.
So am I.