[PROJ] spilhaus regresssion test failures
    Greg Troxel 
    gdt at lexort.com
       
    Sun May  4 11:27:45 PDT 2025
    
    
  
Javier Jimenez Shaw <j1 at jimenezshaw.com> writes:
> The PR was https://github.com/OSGeo/PROJ/pull/4446
>
> Maybe the function that impacts the tests is "pj_conformal_lat_inverse".
> You can try with the new implementation.
> The changes should be small. (See that the signature of the function is a
> bit different). It is used only in one place.
Do you mean:
  take proj 9.6.0
  read the diff to pj_conformal_lat_inverse from the PR, and hand patch
  it in, except not changing the signature
  build and rerun tests
I guess I could further keep the code and compare the two results.
I looked at that code, and it jumped out at me that are abs() was used,
which is a C function, not C++, and is integer only.
With this patch (to 9.6.0), I get a pass:
--- src/latitudes.cpp.~1~       2025-03-13 10:31:27.000000000 -0400
+++ src/latitudes.cpp   2025-05-04 14:23:04.656697860 -0400
@@ -58,7 +58,7 @@
             2 * atan(taninit *
                      std::pow(((1 + esinphi) / (1 - esinphi)), (e / 2))) -
             0.5 * M_PI;
-        if (abs(new_phi - phi) < threshold) {
+        if (std::abs(new_phi - phi) < threshold) {
             phi = new_phi;
             break;
         }
Interesting that this only causes trouble with spilhaus, at least as far
as tests catch it.
    
    
More information about the PROJ
mailing list