Thanks a lot for the input Charles and Thomas,

I am not familiar with either Horner <https://en.wikipedia.org/wiki/Horner%27s_method> or Clenshaw <https://en.wikipedia.org/wiki/Clenshaw_algorithm>, but I do see the mentions now on /Section 6 - Evaluating the series/ pages 6 and 7 of the papers. I implemented the simpler basic approach from section 3 / page 3, which also happened to more easily correspond to the existing PROJ implementation.

I can definitely try to understand all this, with the help of this Rust Geodesy code and the GeographicLib code, and have a go at updating my proposed implementation for improved accuracy and performance.

Kind regards,

-Jerome

On 9/11/24 12:18 PM, Thomas Knudsen wrote:
I totally agree with Charles regarding using Horner for polynomial
evaluation and Clenshaw for the trig series - for accuracy and speed.

I implemented all the material from Charles' preprint
https://arxiv.org/pdf/2212.05818  for Rust Geodesy, when the preprint
appeared about 1½ years ago.

And although (being an experiment) my handling of the raw coefficients
is rather clumsy, at least it gave me a reason to revise my PROJ horner
and clenshaw implementations (which in turn were based on material from
Poder & Engsager: "Some Conformal Mappings...").

So Jérôme, perhaps take a look at the functions "taylor" and "fourier"
over athttps://github.com/busstoptaktik/geodesy/blob/main/src/math/series.rs

While written in Rust, translating to C++ should be rather trivial,
and they may be easier to follow than my decade-old versions already
in the PROJ code base.
_______________________________________________
PROJ mailing list
PROJ@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/proj

Reply via email to