[Proj] Relationship between transverse Mercator algorithms
ckarney at sarnoff.com
Wed Sep 10 11:28:33 EDT 2008
> As for good old Krueger 1912, considering that things were done those
> days using paper and pencil, it remains truly remarkable.
Indeed. One of the interesting aspects of Krueger's paper is the worked
out examples with all angles measured in seconds and a systematic method
of working with logarithms, e.g.,
xi...5,2387755846 (... means the following number is a common log)
xi = 173290",83112 (and here it is converted into seconds)
Or course, it's possible that Krueger used one or more computers to help
him (using "computer" in the 17th-19th century sense).
> If you would you care to comment on the numerical properties of using
> Horner vs. Clenshaw for series expansions, I shall be most grateful.
Not sure I have much to say here. Summing up a bunch of terms is more
accurate if you start with the smallest ones. Horner does this for
polynomials in a small variable and Clenshaw can similarly do it for
trig (and other series). (Horner is just a special case of Clenshaw.)
And both also reduce the operation count over direct summation.
> I am also especially interested in the relevance of using IEEE 10 byte
> floating point format instead of 8 byte double precision, since it is
> said to be the native mode of Intel hardware floating point
> implementations, even though it's not available in all compilers. I
> have not noticed any speed disadvantage when using it, and it perhaps
> provides a bit more precision at low cost.
It's probably the case that the timing of modern floating-point hardware
is insensitive to the precision. Bigger concerns are often memory,
cache size, and the bandwidth between memory and the CPU. As you note,
you might end up with some portability issues. (On Intel chips, g++'s
"long double" gives you a 64-bit mantissa while MS Visual Studio 2005
silently treats it as "double".)
Charles Karney <ckarney at sarnoff.com>
Sarnoff Corporation, Princeton, NJ 08543-5300
Tel: +1 609 734 2312
Fax: +1 609 734 2662
More information about the Proj