Let's Add Intervals to Java (a Proposal)
We want computers to generate guaranteed computation results.
Our interval community unites researchers and practitioners
who understand that the existing numerical computations techniques
often produce "educated guesses" rather than guaranteed results, and
that in many applications, it is vitally important to
have guaranteed results.
For example, when we launch a spaceship to the Moon, it is not sufficient
to know that the approximately computed trajectory leads to the Moon;
we must be 100% sure that the actual trajectory brings the spaceship
there.
Therefore, we need computer support for interval computations.
Guaranteed means, e.g., that in addition to the
approximate value, we must know the bound on its accuracy;
in other words, we must know an interval that is guaranteed to
contain the actual value.
Hence, we need computer support for interval computations.
Currently, the mainstream programming languages do not support interval
computations.
As a result, lots of effort went into producing
interval computation packages
and interval versions of the mainstream
languages.
Ideally, interval computations should be part of mainstream languages.
In particular,
R. Baker Kearfott and other researchers are currently promoting the idea of
including interval computations in the new version of Fortran.
Another language is now appearing on the horizon:
Java: the language of the future?
Currently, there is a new
language called Java
that is spreading like wildfire.
It is, crudely speaking, a version of C++ that is
tailored towards the World Wide Web and parallel computations.
This language is getting more and more
popular with people doing applications, e.g., with
chemical engineers, industrial engineers, etc.,
because with Java, they can not only run their programs, but they can also
produce the results in a nice dynamic format directly into
the Web page.
This language is actively supported by Sun Company, that
distributes it for free.
Many researchers believe that it is the language of the future.
Let's add intervals to Java.
It seems reasonable to add interval computations to Java.
A specific feature of Java that makes interval computations
especially important for Java is that
Java is a platform-independent language.
Running the same program on different platforms
with different computer precisions, etc., often leads to
different results. If we do not have intervals available to
bound numerical errors, users will not know, when they get
different results on different platforms, whether the differences are
the result of a bug of some sort, or just numerical instability.
At Sun, there has already been an internal effort to add intervals
to Java.
This effort is mainly promoted by Bill Walster, Sun's leading
interval researcher.
Help is needed. Ideas are needed. Support is needed.
However, the language is still, basically, in the design stage.
Language designers need feedback from the interval community:
- examples and arguments to help them make an intelligent decision on
whether adding intervals to Java is a good idea;
- specific (and general) ideas of what and how to add;
- ideally, proposals for help and collaboration with the Sun Java
design team.
It is especially important that the Sun team hears from
potential users (customers)
who are interested in applying interval computations to
real-life problems.
Sun is making a serious effort to accommodate potential users, and
it will definitely respond to the customer input.
See also:
Kenneth A. Dickey,
"Getting the Numbers Right, A Cautionary Tale"
Java Report,
February 1998, Vol. 3, No. 2.
Abstract:
A widespread myth holds that computers, being fast adding machines, do math
well. We all know that this is not true but sometimes we believe it anyway.
We forget that the numeric answers we get have high precision but perhaps no
accuracy. I want the computer to tell me it can get the answer or not. This
article explores how math happens in the Java language and provides a
specific example from Interval Arithmetic.
Who to contact.
If you have specific ideas and/or suggestions, please send them to
Bill Walster at
Bill.Walster@eng.sun.com
and to David Hough, the most senior floating point person at Sun,
at
David.Hough@eng.sun.com
(both are on reliable computing mailing list).
Also, please mail a copy of your mail to Vladik Kreinovich at
vladik@utep.edu.
On Bill Walster's suggestion, and
with his help, we will try prepare a formal summary of the
interval community's opinion that will be sent to the Sun team.
If you simply want to express support and/or you
feel that your ideas are too specific to send them to Sun team
leaders, please mail your support/information
to Vladik Kreinovich for inclusion into the summary.
The more input, the better.
Thanks for your help.
Back to Languages for Interval
Computations
Back to the main menu of the Interval
Computations website