Limbo (was: Java Numerics)

Eric Grosse ehgabell-labs.com
Thu Feb 13 21:58:14 PST 1997


Sam Figueroa writes:
> Perhaps we should redirect our efforts, then, to Limbo (a language
> from Bell Labs - see http://inferno.bell-labs.com/inferno)

I've hesitated to jump into the discussion, because until I can deliver
the complex type in the Inferno distribution, I hardly think the
scientific computing community should take us seriously.   (Interval
arithmetic and more powerful arrays are almost as essential---and
coming.)

However, I would like to state two positions directly related to the
current discussion.


1.  Accurate binary/decimal conversion is absolutely essential to
network computing, even if the heavy crunching is done on back-end
servers in C or Fortran and only light-weight interactive work in
the client.  Inferno has had it from day one, based on David Gay's
excellent work which we've made freely available.  It puzzles me
why Java has taken so long, but with Guy on the team surely it will
happen.


2. We're all agreed that we want to mandate IEEE 754 format and
deterministic operation sequences.  Inferno and Java agree (in
conflict with Coonen, I guess) that for the intended users of our
languages the advantages of round-to-double in portability and
lack of surprises outweigh possibly-better-average-accuracy on
some machines.  Thus we both propose ddot getting the same results
everywhere, and nddot exploiting fused-multiply-add or whatever is
available for better speed and accuracy.

Where Java and Inferno differ is in treatment of over/underflow.
Specifically, by mandating rounding-to-double but tolerating
extended exponent range for intermediate expressions on Pentium,
Inferno avoids the penalty in memory traffic that Coonen described.
This means that, for computations that stay well in range, the
same results are computed everywhere.  Where not, Inferno's default
of sending you to our nifty debugger on the first over/underflow
at least warns you of the problem.


I don't claim to have discovered the One True Answer;  a lot of this
is a matter of taste and balance.  Inferno numerics behave the way
I like, and Limbo itself is a sweet little language that you can get
your mind around.  If any of you are feeling adventurous and play
around with the system, send me mail.  The heavy commercial side
doesn't care much about floating point yet, so we still have the
flexibility to tweak details.

Best wishes, Eric



More information about the Numeric-interest mailing list