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

RE: On Arnold's challenge & Paul's Observation...



Dear Dan, 

I think we are converging. 

I of course understand that in interval computations (if done right), we
always get an enclosure, the difference is whether we get a narrower or
wider. (But thanks for a good example anyway.) 

I think we agree on almost everything, including the need for two modes,
with or without transformations, our main (reasonably minor) general
disagreement is what is the default use of intervals

* I think that the default mode should be an inexperienced user (at
least this is our objective, to make currently inexperienced user use
intervals more), i.e., a user who placed an expression because this is a
mathematical expression, not because he or she knows how an interval
compiler will process it

* you think that by default, we should assume that the user is a
specialist, and allow to switch off this feature (and enable
optimization). 

This may be a minor point, as long as both options are available. 

If you still believe that we have a more serious general disagreement
let me know. 

Vladik

P.S. There seems to be, however, a minor misunderstanding still about
your specific original transformation example, and I think this is why
you may have missed the point of my original posting: the motivation for
the transformation listed below is NOT the assumption that x is the
dominant term. The motivation is COMPLETELY DIFFERENT: 

* in the original form, straightforward interval computations lead, in
general, to excess width because x occurs twice, 

* while in the transformed expression, each variable occurs only once
and therefore (ignoring rounding and overflow) we get the exact range. 

For example, for x in [2,3] and y in [0,1], 

* the straightforward computation of the first expression leads to
[4,9]/([4,9]-[0,1])=[4,9]/[3,9]=[4/9,3], while 

* for the transformed expression, we get the exact range
1/(1-([0,1]/[2,3])^2)=1/(1-[0,1/2]^2)=1/(1-[0,1/4])=1/[3/4,1]=[1,4/3]. 

This is the nice feature of single-use expressions advocated by many
(including Bill Walster in his Sun compilers) as a good way to get
narrower bounds whenever possible. 

My whole posting was ONLY about such transformations, transformations
that are used to reduce the interval width to the exact range.

Let me give a more trivial example. Yes, even with 2x-x there can be an
example when 2x leads to an overflow. Does this mean that we should not
replace it with x? It may be that a programmer used some ingenuity and
2x-x is exactly what the programmer wanted, but to me, this is a rare
situation (see the above description of our minor disagreement). 

If we do not allow any automatic transformation, then inexperienced
programmer will be forced to get their results via straightforward
interval computations only -- which of course will lead to huge excess
widths. 

My apologies if you have understood this from the very beginning when
replying to my email. 

-----Original Message-----
From: ben@xxxxxxxxx [mailto:ben@xxxxxxxxx] On Behalf Of Dan Zuras
Intervals

>	The motivation for such a transformation (whether
>	stated or not) is the assumption that x is the
>	dominant term in the expression.  Suppose it is y.
>	Now suppose it is the reciprocal expression we seek.
>	That is:

>		x^2/(x^2 - y^2) versus 1/(1 - (y/x)^2)