[PROJ] spilhaus regresssion test failures

Javier Jimenez Shaw j1 at jimenezshaw.com
Sun May 4 07:01:52 PDT 2025


Hi Greg

The failures in the roundtrip suggest that the problem is in the inverse
function of the spilhaus projection.
Part of the code used there was refactored end of March in master, and
maybe the new code/formulation behaves better in NetBSD.

Could you test master in your environment?

Thanks.

On Sun, 4 May 2025 at 15:02, Greg Troxel via PROJ <proj at lists.osgeo.org>
wrote:

> Running regression tests with 9.6.0, I get a clean pass except for
> spilhaus.  In particular, the adams_ws2 tests pass.
>
> I'm enclosing the spilhaus output for NetBSD 10 amd64; there are
> enormous (57m!) round trip deviations.  The output on NetBSD 10 aarch4
> and NetBSD 9 earmv7hf-el (RPI3) is very similar, with the reported
> round-trip errors not quite the same, but from casual checking differing
> from those on 10/amd64 by around 0.001 mm. An example:
>
>         FAILURE in spilhaus.gie(10):
>   -     roundtrip deviation: 57500.449588 mm, expected: 1.500000 mm
>   +     roundtrip deviation: 57500.449662 mm, expected: 1.500000 mm
>
> This is of course puzzling, as surely this test passes on many other
> platforms, but also there is pretty clearly not terrible floating point
> on NetBSD in general because all the other tests are fine (and paranoia
> is happy), and e.g. geos regression tests pass.
>
> It seems like the spilhaus tests which are not round-trip all pass.  I
> suspect this is a Clue.  But round-trip tests do not seem new in
> spilhaus either.
>
> I glanced at the spilhaus and adams code and didn't immediately see any
> math functions being used that weren't normally used in proj, as a
> NetBSD bug in a little-used libm function could explain things,
>
> I wonder if anyone has run the regression test on other than
> Linux/Mac/Windows, and if so how it went.
>
> ----------------------------------------
> 17/67 Testing: spilhaus
> 17/67 Test: spilhaus
> Command:
> "/tmp/work/geography/proj/work/proj-9.6.0/cmake-pkgsrc-build/bin/gie"
> "/tmp/work/geography/proj/work/proj-9.6.0/test/gie/spilhaus.gie"
> Directory: /tmp/work/geography/proj/work/proj-9.6.0/test
> "spilhaus" start time: May 04 07:53 EDT
> Output:
> ----------------------------------------------------------
>
> -------------------------------------------------------------------------------
> Reading file
> '/tmp/work/geography/proj/work/proj-9.6.0/test/gie/spilhaus.gie'
>
> -------------------------------------------------------------------------------
> proj=spilhaus
>
> -------------------------------------------------------------------------------
>      FAILURE in spilhaus.gie(10):
>      roundtrip deviation: 57500.449588 mm, expected: 1.500000 mm
>      -----
>      FAILURE in spilhaus.gie(15):
>      roundtrip deviation: 15011.025396 mm, expected: 10.000000 mm
>      -----
>      FAILURE in spilhaus.gie(18):
>      roundtrip deviation: 586478.398214 mm, expected: 10.000000 mm
>      -----
>      FAILURE in spilhaus.gie(21):
>      roundtrip deviation: 808104.443729 mm, expected: 10.000000 mm
>      -----
>      FAILURE in spilhaus.gie(24):
>      roundtrip deviation: 471175.633331 mm, expected: 10.000000 mm
>      -----
>      FAILURE in spilhaus.gie(27):
>      roundtrip deviation: 829216.052427 mm, expected: 10.000000 mm
>      -----
>      FAILURE in spilhaus.gie(30):
>      roundtrip deviation: 109204.184724 mm, expected: 10.000000 mm
>      -----
>      FAILURE in spilhaus.gie(33):
>      roundtrip deviation: 15011.074199 mm, expected: 10.000000 mm
>      -----
>      FAILURE in spilhaus.gie(36):
>      roundtrip deviation: 586477.606430 mm, expected: 10.000000 mm
>      -----
>      FAILURE in spilhaus.gie(39):
>      roundtrip deviation: 808104.315015 mm, expected: 10.000000 mm
>      -----
>      FAILURE in spilhaus.gie(42):
>      roundtrip deviation: 471177.085108 mm, expected: 10.000000 mm
>      -----
>      FAILURE in spilhaus.gie(45):
>      roundtrip deviation: 829214.811533 mm, expected: 10.000000 mm
>      -----
>      FAILURE in spilhaus.gie(48):
>      roundtrip deviation: 109202.584067 mm, expected: 10.000000 mm
>      -----
>      FAILURE in spilhaus.gie(51):
>      roundtrip deviation: 15011.026707 mm, expected: 10.000000 mm
>      -----
>      FAILURE in spilhaus.gie(54):
>      roundtrip deviation: 586478.292368 mm, expected: 10.000000 mm
>      -----
>      FAILURE in spilhaus.gie(57):
>      roundtrip deviation: 808104.391993 mm, expected: 10.000000 mm
>      -----
>      FAILURE in spilhaus.gie(60):
>      roundtrip deviation: 471175.627080 mm, expected: 10.000000 mm
>      -----
>      FAILURE in spilhaus.gie(63):
>      roundtrip deviation: 829211.773951 mm, expected: 10.000000 mm
>      -----
>      FAILURE in spilhaus.gie(66):
>      roundtrip deviation: 109199.737042 mm, expected: 10.000000 mm
>      -----
>      FAILURE in spilhaus.gie(69):
>      roundtrip deviation: 15012.084894 mm, expected: 10.000000 mm
>      -----
>      FAILURE in spilhaus.gie(72):
>      roundtrip deviation: 586477.605319 mm, expected: 10.000000 mm
>      -----
>      FAILURE in spilhaus.gie(75):
>      roundtrip deviation: 808102.648912 mm, expected: 10.000000 mm
>      -----
>      FAILURE in spilhaus.gie(78):
>      roundtrip deviation: 471175.632054 mm, expected: 10.000000 mm
>      -----
>      FAILURE in spilhaus.gie(81):
>      roundtrip deviation: 829214.829694 mm, expected: 10.000000 mm
>      -----
>      FAILURE in spilhaus.gie(84):
>      roundtrip deviation: 109202.218075 mm, expected: 10.000000 mm
>      -----
>      FAILURE in spilhaus.gie(87):
>      roundtrip deviation: 15010.957189 mm, expected: 10.000000 mm
>      -----
>      FAILURE in spilhaus.gie(90):
>      roundtrip deviation: 586477.284253 mm, expected: 10.000000 mm
>      -----
>      FAILURE in spilhaus.gie(93):
>      roundtrip deviation: 808104.333670 mm, expected: 10.000000 mm
>      -----
>      FAILURE in spilhaus.gie(96):
>      roundtrip deviation: 471167.978655 mm, expected: 10.000000 mm
>      -----
>      FAILURE in spilhaus.gie(99):
>      roundtrip deviation: 829212.867965 mm, expected: 10.000000 mm
>      -----
>      FAILURE in spilhaus.gie(102):
>      roundtrip deviation: 109202.667047 mm, expected: 10.000000 mm
>      -----
>      FAILURE in spilhaus.gie(105):
>      roundtrip deviation: 15010.074161 mm, expected: 10.000000 mm
>      -----
>      FAILURE in spilhaus.gie(108):
>      roundtrip deviation: 586478.164449 mm, expected: 10.000000 mm
>      -----
>      FAILURE in spilhaus.gie(111):
>      roundtrip deviation: 808104.382140 mm, expected: 10.000000 mm
>      -----
>      FAILURE in spilhaus.gie(114):
>      roundtrip deviation: 471175.496663 mm, expected: 10.000000 mm
>      -----
>      FAILURE in spilhaus.gie(117):
>      roundtrip deviation: 829214.900084 mm, expected: 10.000000 mm
>      -----
>      FAILURE in spilhaus.gie(120):
>      roundtrip deviation: 109203.234594 mm, expected: 10.000000 mm
>      -----
>      FAILURE in spilhaus.gie(123):
>      roundtrip deviation: 15010.340942 mm, expected: 10.000000 mm
>      -----
>      FAILURE in spilhaus.gie(126):
>      roundtrip deviation: 586477.614831 mm, expected: 10.000000 mm
>      -----
>      FAILURE in spilhaus.gie(129):
>      roundtrip deviation: 808112.028270 mm, expected: 10.000000 mm
>      -----
>      FAILURE in spilhaus.gie(132):
>      roundtrip deviation: 471175.528546 mm, expected: 10.000000 mm
>      -----
>      FAILURE in spilhaus.gie(135):
>      roundtrip deviation: 829214.842919 mm, expected: 10.000000 mm
>      -----
>      FAILURE in spilhaus.gie(138):
>      roundtrip deviation: 109202.561230 mm, expected: 10.000000 mm
>      -----
>      FAILURE in spilhaus.gie(141):
>      roundtrip deviation: 15006.580703 mm, expected: 10.000000 mm
>      -----
>      FAILURE in spilhaus.gie(144):
>      roundtrip deviation: 586477.940196 mm, expected: 10.000000 mm
>      -----
>      FAILURE in spilhaus.gie(147):
>      roundtrip deviation: 808104.487853 mm, expected: 10.000000 mm
>      -----
>      FAILURE in spilhaus.gie(150):
>      roundtrip deviation: 471174.492910 mm, expected: 10.000000 mm
>      -----
>      FAILURE in spilhaus.gie(153):
>      roundtrip deviation: 829211.268325 mm, expected: 10.000000 mm
>      -----
>      FAILURE in spilhaus.gie(156):
>      roundtrip deviation: 109202.561384 mm, expected: 10.000000 mm
>
> -------------------------------------------------------------------------------
> proj=spilhaus rot=45 k_0=1 lat_0=-49.56371678 lon_0=66.94970198 azi=40...
>
> -------------------------------------------------------------------------------
>      FAILURE in spilhaus.gie(375):
>      roundtrip deviation: 70285.631874 mm, expected: 1.000000 mm
>
> -------------------------------------------------------------------------------
> proj=spilhaus
>
> -------------------------------------------------------------------------------
>      FAILURE in spilhaus.gie(385):
>      roundtrip deviation: 70285.631874 mm, expected: 1.000000 mm
>
> -------------------------------------------------------------------------------
> proj=spilhaus lon_0=10.1
>
> -------------------------------------------------------------------------------
>      FAILURE in spilhaus.gie(392):
>      roundtrip deviation: 70285.638184 mm, expected: 1.000000 mm
>
> -------------------------------------------------------------------------------
> proj=spilhaus lat_0=30.1
>
> -------------------------------------------------------------------------------
>      FAILURE in spilhaus.gie(399):
>      roundtrip deviation: 70285.633552 mm, expected: 1.000000 mm
>
> -------------------------------------------------------------------------------
> proj=spilhaus azi=9.1
>
> -------------------------------------------------------------------------------
>      FAILURE in spilhaus.gie(406):
>      roundtrip deviation: 70285.658768 mm, expected: 1.000000 mm
>
> -------------------------------------------------------------------------------
> proj=spilhaus rot=40.1
>
> -------------------------------------------------------------------------------
>      FAILURE in spilhaus.gie(413):
>      roundtrip deviation: 70285.631939 mm, expected: 1.000000 mm
>
> -------------------------------------------------------------------------------
> proj=spilhaus k_0=0.9
>
> -------------------------------------------------------------------------------
>      FAILURE in spilhaus.gie(420):
>      roundtrip deviation: 70285.631939 mm, expected: 1.000000 mm
>
> -------------------------------------------------------------------------------
> total: 77 tests succeeded,  0 tests skipped, 56 tests FAILED!
>
> -------------------------------------------------------------------------------
> <end of output>
> Test time =   0.02 sec
> ----------------------------------------------------------
> Test Failed.
> "spilhaus" end time: May 04 07:53 EDT
> "spilhaus" time elapsed: 00:00:00
> _______________________________________________
> PROJ mailing list
> PROJ at lists.osgeo.org
> https://lists.osgeo.org/mailman/listinfo/proj
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/proj/attachments/20250504/ac58c623/attachment-0001.htm>


More information about the PROJ mailing list