Ticket #97 (closed enhancement: fixed)
Add extended tmerc implementation
|Reported by:||warmerdam||Owned by:||warmerdam|
Description (last modified by warmerdam) (diff)
There have been frequent requests for a transverse mercator implemention that roundtrips well far from the central meridian. A number of implementations have been discussed on the proj mailing list but this is a suggested implementation.
Thomas Knudsen writes:
As said on the proj mailing list, I will now forward Geralds timing experiments to you. (incidentally, I now see that you were actually also recipient of Gerald's original message, but since it is now almost 3 years ago it probably makes sense to collect everything again).
In addition to Geralds original attachments for the timing experiments (temparc.tar.bz2 and cpuinfo), i attach Karsten's original code (utm.zip), Karsten's ICA paper on the subject (TheTransverse?... .pdf), and my slightly optimized version of Gerald's adaptation of Karsten's code. Unfortunately, I cannot find my copy of Gerald's original version without my (potentially premature) optimizations. Essentially, they consist of
- getting rid of a function call to fabs through the definition of the macro FABS
- getting rid of calls to sinh and cosh, at the cost of a few extra calls to exp (which gcc can optimize away to direct processor instructions)
- calling sincos rather than separate calls to sin and cos, when using gcc
- wondering whether asin really should be called "forgive" since it is the inverse of "sin"...