EZNEC and Linux
"J. Mc Laughlin" wrote in
:
... and many other things exist to frustrate accurate computing.
Long, long ago when translating antenna modeling (written in FORTRAN)
that had given reasonable results on a 60 bit/word CDC computer to an
IBM 32 bit/word computer, I found the code for one antenna type to be
unsalvageable. No matter what was done with concatenating words
together, garbage resulted. A close look found that the algorithms
used were much too sensitive to significant figures.
Though the 60 bit CDC machines were regarded as the ants pants by
engineers and scientists, the IBM 370 machines (and later) using double
precision were better. The tricky bit was (IIRC) that the representation
of reals on CDC machines used a base of 2 for the exponent, whereas the
IBM format used 2^16, and obviously the two macines allocated a different
number of bits to the mantissa and exponent. It was hard to state the
extent of improvmenet in precision in the IBM format due to the use of
the larger number for the exponent base.
On occasions, this gave rise to different results from programs ported
from on to other. It might have seemed like splitting hairs, but it
showed how close to the wind some of the programs ran in terms of
numerical stability.
I recall in the early days of Excel (V2???) when Microsoft first allowed
user developed add-ins (DLL only, they hadn't thought of VBA), I wrote a
function library for Erlang functions (and some other traffic funcitons).
A chap I was doing some work for asked for a spreadsheet to resemble a
set of printed Erlang tables, and he went through checking them.
When challenged about small differences, I offered "well see, the
engineer who probably developed that set of tables as a major project,
probably used a CDC machine with a mere 60 bit real representation (which
was thought to be the ducks guts in its heyday), but I have used the
Intel 80 bit reals inside the routines, and although Excel only uses 64
bit reals, accumulated rounding errors inside the function library are
reduced (Erlang is an iteritive calculation, but can be optimised to
reduce effects of rounding and overflow)". He was convinced, but I think
somewhat dissapointed to see a low cost desktop computer providing a more
accurate solution than the iconic CDC.
Our mobile phones have probably got more powerful processors now than the
386/SX16 that I used to develop that library!
Owen
|