On Saturday, 14 May 2016 at 18:46:50 UTC, Walter Bright wrote:
On 5/14/2016 3:16 AM, John Colvin wrote:
This is all quite discouraging from a scientific programmers
point of view.
Precision is important, more precision is good, but
reproducibility and
predictability are critical.
I used to design and build digital electronics out of TTL
chips. Over time, TTL chips got faster and faster. The rule was
to design the circuit with a minimum signal propagation delay,
but never a maximum. Therefore, putting in faster parts will
never break the circuit.
Engineering is full of things like this. It's sound engineering
practice. I've never ever heard of a circuit requiring a
resistor with 20% tolerance that would fail if a 10% tolerance
one was put in, for another example.
Should scientific software be written to not break if the
floating-point precision is enhanced, and to allow greater
precision to be used when the hardware supports it? Sure.
However, that's not the same as saying that the choice of
precision should be in the hands of the hardware, rather than the
person building + running the program. I for one would not like
to have to spend time working out why my program was producing
different results, just because I (say) switched from a machine
supporting maximum 80-bit float to one supporting 128-bit.