Caleb said:
... transcendentals can also be represented exactly by formulae with a
finite number of bits:
Doesn't that depend on the transcendental?
... on the other hand, there is another class of (real) numbers, the
incomputables, beyond the transcendentals, for which there is no
(finite length) formula or program possible.... but how often do you
need to write a program which deals with (an exact representation of)
those?
"Most" real numbers are both transcendental and non computable.
http://en.wikipedia.org/wiki/Transcendental_number
... almost all real and complex numbers are transcendental ...
http://en.wikipedia.org/wiki/Computable_number
... almost all real numbers are not computable ...
Marnen Laibow-Koser said:
... Are any important constants incomputable?
An interesting question. There are, for example Chaitin's constants:
http://en.wikipedia.org/wiki/Chaitin's_constant
http://mathworld.wolfram.com/ChaitinsConstant.html
which are (I assume) important in computation theory
but (very?) unlikely to be useful in normal problems!
(Although it's slightly risky to make that statement
about anything: even obscure mathematics
sometimes turns out to have "real world" importance.)
Returning to the original question(s) in this thread:
* From years ago I recall Fractint being written using integers
for speed (and possibly also for precision). But now:
http://en.wikipedia.org/wiki/Fractint
"... the first versions of it computed fractals by using only
integer arithmetic (also known as fixed-point arithmetic),
which led to much faster rendering on x86 computers
without math coprocessors. Since then, floating-point arithmetic
and "arbitrary-precision" modes have been added,
the latter of which emulates an arbitrarily large mantissa in RAM.
The arbitrary-precision mode is slow even on modern computers. ..."
* Depending on the problem, inherent uncertainty in the data
may make the notion of an "exact" number misleading.
I'm not arguing against using "precise" representations,
I'm just saying that before using more precise representations
one should ask whether what that gives (and costs,
in terms of performance) is worth having. There may well
be "wrong" answers without there being unique "right" answers,
just degrees of "rightness".
For example, using 22/7 for pi is an error of about 0.04%.
(Using Ruby Math:
I = 3.14159265358979 as an approximation to pi.)
Using 355/113 is an error of less than (10 ** -7)%.
The circumference of the Earth is about 40,000 km, and depending on
where and how you measure it, the "actual" figure is +/- about 75 km.
Using 22/7 instead of pi for the circumference gives an "error" of 16 km,
which may be "reasonable" given the inherent "uncertainty"
in the circumference (depending on what you want to do).
Using 355/113 instead of pi gives an "error" of about 4 metres,
which for most(?) purposes is insignificant compared with
the inherent "uncertainty" in the circumference.
I'm to some extent guilty of not following my own precepts:
for financial calculations I mostly use double precision floats,
and I suspect that for much of those calculations
using single precision floats would be sufficiently accurate.
I don't do that because double precision floats are fast,
and with double precision I don't need to worry so much
about "rounding errors". But I do try to present the results
in ways which do not give an impression of "spurious accuracy".