Bob Wells wrote:
> The major advance that has been made in numerical weather prediction
> (historically a major fortran arena) over the last few years has been the
> development of so-called ensemble models where perturbations (smaller than
> the observational error) are applied to initial conditions so that the
> robustness of the solution can be studied.
> I suggest that this technique will spread to many other fields in the
> next few years and that interval arithmetic might provide an easy and
> efficient way of coding these problems.
What you want for this case is to compute the partial derivative of the
solution with respect to the initial conditions. One way to do this is
to compute with what has been called "U arithmetic" -- in effect, carry
a few terms of the Taylor series. This also is useful in optimization,
and several other areas wherein derivatives are useful.
Sure, you can use ADIFOR to compute the derivative of your code, but it
would be more convenient to compute directly with Taylor series, especially
in prototypes. (BTW, it's important to have the derivate of the code,
not a code that implements the derivative of what the code computes, for
reasons of consistency of error propogation, among others.)
The ability to compute efficiently and clearly with Taylor series would
be completely unaffected by having an intrinsic interval data type, but
would be profoundly affected by having a facility to express abstract
data types efficiently and clearly.
Attempting to implement interval arithmetic by using facilities of the
language, rather than providing an intrinsic data type, exposes failings
of the abstraction mechanism, so it's useful to try it, and then propose
(and/or implement) general-purpose extensions that make it more usable.
One hopes these extensions would have broader utility than interval
arithmetic alone.
If we put intervals into Fortran as an intrinsic type, there will be
communities that want Taylor series (uni- and multi-variate), quaternions,
extended precision, ... as intrinsic types. Where would it stop?
Let's just make sure that one can write interval support clearly with
core facilities of the language, and urge vendors who have an interest
in the topic to pretend it's intrinsic -- like many do for HPF support,
which requires nothing new in the language standard.
Best regards,
Van Snyder
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|