Ticket #97 (closed enhancement: fixed)
Add extended tmerc implementation
| Reported by: | warmerdam | Owned by: | warmerdam |
|---|---|---|---|
| Priority: | major | Milestone: | 4.8.0 |
| Component: | Core | Version: | unspecified |
| Keywords: | etmerc | Cc: |
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"...

