On 2/20/2013 5:10 PM, Vincent Lefevre wrote:
On 2013-02-20 10:49:06 -0500, Michel Hack wrote:
The reason for requiring at least the primitive operations to return the
tightest enclosure is because slop tends to grow rather fast in certain
cases, so when exact point intervals are possible (zero slop), they should
be exploited.
A recommendation should be sufficient in some cases (implicit
interval types could be used for that).
Multiple precision without tightest enclosure will generally give
narrower intervals than fixed precision with tightest enclosure.
The main exception is when a bound can be computed exactly in
fixed precision (exact point intervals are a particular case of
such intervals).
I assume that it is well known to this readership that for
continuous functions it's possible to sometimes get tighter
enclosures that naive evaluation gives, by subdivision,
perhaps repeatedly. That is
let f(x):= x*(x+4)*(x-4) evaluated on [-5,5]. Naively
one gets f([-5,5]) = [-405, 405]
however by noting that one can look at f([-5,0])=[-45,180]
and f([0,5])=[-180,45], immediately improving the
min and max over [-5,5] to [-180,180].
(and repeating this, recursively subdividing) one
can find a tighter interval is [-45, 45].
My concern here is that there is a potentially
more versatile approach other than
wringing every last bit out of a single interval
evaluation. This is not necessarily cheap if
you need to subdivide n times at cost 2^n worst case, though
the cost is sometimes much better.
This subdivision strategy might be used to compute those
troublesome literal constants that the text2interval(<complicated string>)
were intended to do, but perhaps can be done more simply by
function application on intervals computing min and max
via subdivision to high accuracy. Just a thought.
RJF