From 043f401fbe22a2fbf8c3cb3e852a16c00e6fd942 Mon Sep 17 00:00:00 2001 From: Adeel Ahmad Date: Sat, 9 Jun 2018 16:11:46 +0500 Subject: [PATCH 1/4] [util] Use Maxima generated function for computing C3x coefficients The script used is geod.mac: https://sourceforge.net/p/geographiclib/code/ci/release/tree/maxima/geod.mac --- .../boost/geometry/util/series_expansion.hpp | 328 ++++++------------ 1 file changed, 105 insertions(+), 223 deletions(-) diff --git a/include/boost/geometry/util/series_expansion.hpp b/include/boost/geometry/util/series_expansion.hpp index 02f107452..e3dc826b5 100644 --- a/include/boost/geometry/util/series_expansion.hpp +++ b/include/boost/geometry/util/series_expansion.hpp @@ -496,232 +496,114 @@ namespace boost { namespace geometry { namespace series_expansion { geometry/doc/other/maxima/geod.mac */ template - void evaluate_coeffs_C3x(CT const& n, CT c[], const CT coeff[]) - { - int offset = 0, k = 0; - // l is index of C3[l]. - for (int l = 1; l < SeriesOrder; ++l) - { - for (int j = SeriesOrder - 1; j >= l; --j) - { - // Order of polynomial in n. - int m = std::min(SeriesOrder - j - 1, j); - c[k++] = math::polyval(m, coeff + offset, n) / - coeff[offset + m + 1]; - offset += m + 2; - } + static inline void evaluate_coeffs_C3x(CT const& n, CT c[]) { + const CT n2 = math::sqr(n); + switch (SeriesOrder) { + case 0: + break; + case 1: + break; + case 2: + c[0] = (CT(1)-n)/CT(4); + break; + case 3: + c[0] = (CT(1)-n)/CT(4); + c[1] = (CT(1)-n2)/CT(8); + c[2] = ((n-CT(3))*n+CT(2))/CT(32); + break; + case 4: + c[0] = (CT(1)-n)/CT(4); + c[1] = (CT(1)-n2)/CT(8); + c[2] = (n*((-CT(5)*n-CT(1))*n+CT(3))+CT(3))/CT(64); + c[3] = ((n-CT(3))*n+CT(2))/CT(32); + c[4] = (n*(n*(CT(2)*n-CT(3))-CT(2))+CT(3))/CT(64); + c[5] = (n*((CT(5)-n)*n-CT(9))+CT(5))/CT(192); + break; + case 5: + c[0] = (CT(1)-n)/CT(4); + c[1] = (CT(1)-n2)/CT(8); + c[2] = (n*((-CT(5)*n-CT(1))*n+CT(3))+CT(3))/CT(64); + c[3] = (n*((CT(2)-CT(2)*n)*n+CT(2))+CT(5))/CT(128); + c[4] = ((n-CT(3))*n+CT(2))/CT(32); + c[5] = (n*(n*(CT(2)*n-CT(3))-CT(2))+CT(3))/CT(64); + c[6] = (n*((-CT(6)*n-CT(9))*n+CT(2))+CT(6))/CT(256); + c[7] = (n*((CT(5)-n)*n-CT(9))+CT(5))/CT(192); + c[8] = (n*(n*(CT(10)*n-CT(6))-CT(10))+CT(9))/CT(384); + c[9] = (n*((CT(20)-CT(7)*n)*n-CT(28))+CT(14))/CT(1024); + break; + case 6: + c[0] = (CT(1)-n)/CT(4); + c[1] = (CT(1)-n2)/CT(8); + c[2] = (n*((-CT(5)*n-CT(1))*n+CT(3))+CT(3))/CT(64); + c[3] = (n*((CT(2)-CT(2)*n)*n+CT(2))+CT(5))/CT(128); + c[4] = (n*(CT(3)*n+CT(11))+CT(12))/CT(512); + c[5] = ((n-CT(3))*n+CT(2))/CT(32); + c[6] = (n*(n*(CT(2)*n-CT(3))-CT(2))+CT(3))/CT(64); + c[7] = (n*((-CT(6)*n-CT(9))*n+CT(2))+CT(6))/CT(256); + c[8] = ((CT(1)-CT(2)*n)*n+CT(5))/CT(256); + c[9] = (n*((CT(5)-n)*n-CT(9))+CT(5))/CT(192); + c[10] = (n*(n*(CT(10)*n-CT(6))-CT(10))+CT(9))/CT(384); + c[11] = ((-CT(77)*n-CT(8))*n+CT(42))/CT(3072); + c[12] = (n*((CT(20)-CT(7)*n)*n-CT(28))+CT(14))/CT(1024); + c[13] = ((-CT(7)*n-CT(40))*n+CT(28))/CT(2048); + c[14] = (n*(CT(75)*n-CT(90))+CT(42))/CT(5120); + break; + case 7: + c[0] = (CT(1)-n)/CT(4); + c[1] = (CT(1)-n2)/CT(8); + c[2] = (n*((-CT(5)*n-CT(1))*n+CT(3))+CT(3))/CT(64); + c[3] = (n*((CT(2)-CT(2)*n)*n+CT(2))+CT(5))/CT(128); + c[4] = (n*(CT(3)*n+CT(11))+CT(12))/CT(512); + c[5] = (CT(10)*n+CT(21))/CT(1024); + c[6] = ((n-CT(3))*n+CT(2))/CT(32); + c[7] = (n*(n*(CT(2)*n-CT(3))-CT(2))+CT(3))/CT(64); + c[8] = (n*((-CT(6)*n-CT(9))*n+CT(2))+CT(6))/CT(256); + c[9] = ((CT(1)-CT(2)*n)*n+CT(5))/CT(256); + c[10] = (CT(69)*n+CT(108))/CT(8192); + c[11] = (n*((CT(5)-n)*n-CT(9))+CT(5))/CT(192); + c[12] = (n*(n*(CT(10)*n-CT(6))-CT(10))+CT(9))/CT(384); + c[13] = ((-CT(77)*n-CT(8))*n+CT(42))/CT(3072); + c[14] = (CT(12)-n)/CT(1024); + c[15] = (n*((CT(20)-CT(7)*n)*n-CT(28))+CT(14))/CT(1024); + c[16] = ((-CT(7)*n-CT(40))*n+CT(28))/CT(2048); + c[17] = (CT(72)-CT(43)*n)/CT(8192); + c[18] = (n*(CT(75)*n-CT(90))+CT(42))/CT(5120); + c[19] = (CT(9)-CT(15)*n)/CT(1024); + c[20] = (CT(44)-CT(99)*n)/CT(8192); + break; + case 8: + c[0] = (CT(1)-n)/CT(4); + c[1] = (CT(1)-n2)/CT(8); + c[2] = (n*((-CT(5)*n-CT(1))*n+CT(3))+CT(3))/CT(64); + c[3] = (n*((CT(2)-CT(2)*n)*n+CT(2))+CT(5))/CT(128); + c[4] = (n*(CT(3)*n+CT(11))+CT(12))/CT(512); + c[5] = (CT(10)*n+CT(21))/CT(1024); + c[6] = CT(243)/CT(16384); + c[7] = ((n-CT(3))*n+CT(2))/CT(32); + c[8] = (n*(n*(CT(2)*n-CT(3))-CT(2))+CT(3))/CT(64); + c[9] = (n*((-CT(6)*n-CT(9))*n+CT(2))+CT(6))/CT(256); + c[10] = ((CT(1)-CT(2)*n)*n+CT(5))/CT(256); + c[11] = (CT(69)*n+CT(108))/CT(8192); + c[12] = CT(187)/CT(16384); + c[13] = (n*((CT(5)-n)*n-CT(9))+CT(5))/CT(192); + c[14] = (n*(n*(CT(10)*n-CT(6))-CT(10))+CT(9))/CT(384); + c[15] = ((-CT(77)*n-CT(8))*n+CT(42))/CT(3072); + c[16] = (CT(12)-n)/CT(1024); + c[17] = CT(139)/CT(16384); + c[18] = (n*((CT(20)-CT(7)*n)*n-CT(28))+CT(14))/CT(1024); + c[19] = ((-CT(7)*n-CT(40))*n+CT(28))/CT(2048); + c[20] = (CT(72)-CT(43)*n)/CT(8192); + c[21] = CT(127)/CT(16384); + c[22] = (n*(CT(75)*n-CT(90))+CT(42))/CT(5120); + c[23] = (CT(9)-CT(15)*n)/CT(1024); + c[24] = CT(99)/CT(16384); + c[25] = (CT(44)-CT(99)*n)/CT(8192); + c[26] = CT(99)/CT(16384); + c[27] = CT(429)/CT(114688); + break; } } - template - void evaluate_coeffs_C3x(CT const& n, CT c[]) { - if (SeriesOrder == 3) { - static const CT coeff[] = { - // C3[1], coeff of eps^2, polynomial in n of order 0 - 1, 8, - // C3[1], coeff of eps^1, polynomial in n of order 1 - -1, 1, 4, - // C3[2], coeff of eps^2, polynomial in n of order 0 - 1, 16, - }; - - evaluate_coeffs_C3x(n, c, coeff); - } - else if (SeriesOrder == 4) { - static const CT coeff[] = { - // C3[1], coeff of eps^3, polynomial in n of order 0 - 3, 64, - // C3[1], coeff of eps^2, polynomial in n of order 1 - // This is a case where a leading 0 term has been inserted to maintain the - // pattern in the orders of the polynomials. - 0, 1, 8, - // C3[1], coeff of eps^1, polynomial in n of order 1 - -1, 1, 4, - // C3[2], coeff of eps^3, polynomial in n of order 0 - 3, 64, - // C3[2], coeff of eps^2, polynomial in n of order 1 - -3, 2, 32, - // C3[3], coeff of eps^3, polynomial in n of order 0 - 5, 192, - }; - - evaluate_coeffs_C3x(n, c, coeff); - } - else if (SeriesOrder == 5) { - static const CT coeff[] = { - // C3[1], coeff of eps^4, polynomial in n of order 0 - 5, 128, - // C3[1], coeff of eps^3, polynomial in n of order 1 - 3, 3, 64, - // C3[1], coeff of eps^2, polynomial in n of order 2 - -1, 0, 1, 8, - // C3[1], coeff of eps^1, polynomial in n of order 1 - -1, 1, 4, - // C3[2], coeff of eps^4, polynomial in n of order 0 - 3, 128, - // C3[2], coeff of eps^3, polynomial in n of order 1 - -2, 3, 64, - // C3[2], coeff of eps^2, polynomial in n of order 2 - 1, -3, 2, 32, - // C3[3], coeff of eps^4, polynomial in n of order 0 - 3, 128, - // C3[3], coeff of eps^3, polynomial in n of order 1 - -9, 5, 192, - // C3[4], coeff of eps^4, polynomial in n of order 0 - 7, 512, - }; - - evaluate_coeffs_C3x(n, c, coeff); - } - else if (SeriesOrder == 6) { - static const CT coeff[] = { - // C3[1], coeff of eps^5, polynomial in n of order 0 - 3, 128, - // C3[1], coeff of eps^4, polynomial in n of order 1 - 2, 5, 128, - // C3[1], coeff of eps^3, polynomial in n of order 2 - -1, 3, 3, 64, - // C3[1], coeff of eps^2, polynomial in n of order 2 - -1, 0, 1, 8, - // C3[1], coeff of eps^1, polynomial in n of order 1 - -1, 1, 4, - // C3[2], coeff of eps^5, polynomial in n of order 0 - 5, 256, - // C3[2], coeff of eps^4, polynomial in n of order 1 - 1, 3, 128, - // C3[2], coeff of eps^3, polynomial in n of order 2 - -3, -2, 3, 64, - // C3[2], coeff of eps^2, polynomial in n of order 2 - 1, -3, 2, 32, - // C3[3], coeff of eps^5, polynomial in n of order 0 - 7, 512, - // C3[3], coeff of eps^4, polynomial in n of order 1 - -10, 9, 384, - // C3[3], coeff of eps^3, polynomial in n of order 2 - 5, -9, 5, 192, - // C3[4], coeff of eps^5, polynomial in n of order 0 - 7, 512, - // C3[4], coeff of eps^4, polynomial in n of order 1 - -14, 7, 512, - // C3[5], coeff of eps^5, polynomial in n of order 0 - 21, 2560, - }; - - evaluate_coeffs_C3x(n, c, coeff); - } - else if (SeriesOrder == 7) { - static const CT coeff[] = { - // C3[1], coeff of eps^6, polynomial in n of order 0 - 21, 1024, - // C3[1], coeff of eps^5, polynomial in n of order 1 - 11, 12, 512, - // C3[1], coeff of eps^4, polynomial in n of order 2 - 2, 2, 5, 128, - // C3[1], coeff of eps^3, polynomial in n of order 3 - -5, -1, 3, 3, 64, - // C3[1], coeff of eps^2, polynomial in n of order 2 - -1, 0, 1, 8, - // C3[1], coeff of eps^1, polynomial in n of order 1 - -1, 1, 4, - // C3[2], coeff of eps^6, polynomial in n of order 0 - 27, 2048, - // C3[2], coeff of eps^5, polynomial in n of order 1 - 1, 5, 256, - // C3[2], coeff of eps^4, polynomial in n of order 2 - -9, 2, 6, 256, - // C3[2], coeff of eps^3, polynomial in n of order 3 - 2, -3, -2, 3, 64, - // C3[2], coeff of eps^2, polynomial in n of order 2 - 1, -3, 2, 32, - // C3[3], coeff of eps^6, polynomial in n of order 0 - 3, 256, - // C3[3], coeff of eps^5, polynomial in n of order 1 - -4, 21, 1536, - // C3[3], coeff of eps^4, polynomial in n of order 2 - -6, -10, 9, 384, - // C3[3], coeff of eps^3, polynomial in n of order 3 - -1, 5, -9, 5, 192, - // C3[4], coeff of eps^6, polynomial in n of order 0 - 9, 1024, - // C3[4], coeff of eps^5, polynomial in n of order 1 - -10, 7, 512, - // C3[4], coeff of eps^4, polynomial in n of order 2 - 10, -14, 7, 512, - // C3[5], coeff of eps^6, polynomial in n of order 0 - 9, 1024, - // C3[5], coeff of eps^5, polynomial in n of order 1 - -45, 21, 2560, - // C3[6], coeff of eps^6, polynomial in n of order 0 - 11, 2048, - }; - - evaluate_coeffs_C3x(n, c, coeff); - } - else if (SeriesOrder == 8) { - static const CT coeff[] = { - // C3[1], coeff of eps^7, polynomial in n of order 0 - 243, 16384, - // C3[1], coeff of eps^6, polynomial in n of order 1 - 10, 21, 1024, - // C3[1], coeff of eps^5, polynomial in n of order 2 - 3, 11, 12, 512, - // C3[1], coeff of eps^4, polynomial in n of order 3 - -2, 2, 2, 5, 128, - // C3[1], coeff of eps^3, polynomial in n of order 3 - -5, -1, 3, 3, 64, - // C3[1], coeff of eps^2, polynomial in n of order 2 - -1, 0, 1, 8, - // C3[1], coeff of eps^1, polynomial in n of order 1 - -1, 1, 4, - // C3[2], coeff of eps^7, polynomial in n of order 0 - 187, 16384, - // C3[2], coeff of eps^6, polynomial in n of order 1 - 69, 108, 8192, - // C3[2], coeff of eps^5, polynomial in n of order 2 - -2, 1, 5, 256, - // C3[2], coeff of eps^4, polynomial in n of order 3 - -6, -9, 2, 6, 256, - // C3[2], coeff of eps^3, polynomial in n of order 3 - 2, -3, -2, 3, 64, - // C3[2], coeff of eps^2, polynomial in n of order 2 - 1, -3, 2, 32, - // C3[3], coeff of eps^7, polynomial in n of order 0 - 139, 16384, - // C3[3], coeff of eps^6, polynomial in n of order 1 - -1, 12, 1024, - // C3[3], coeff of eps^5, polynomial in n of order 2 - -77, -8, 42, 3072, - // C3[3], coeff of eps^4, polynomial in n of order 3 - 10, -6, -10, 9, 384, - // C3[3], coeff of eps^3, polynomial in n of order 3 - -1, 5, -9, 5, 192, - // C3[4], coeff of eps^7, polynomial in n of order 0 - 127, 16384, - // C3[4], coeff of eps^6, polynomial in n of order 1 - -43, 72, 8192, - // C3[4], coeff of eps^5, polynomial in n of order 2 - -7, -40, 28, 2048, - // C3[4], coeff of eps^4, polynomial in n of order 3 - -7, 20, -28, 14, 1024, - // C3[5], coeff of eps^7, polynomial in n of order 0 - 99, 16384, - // C3[5], coeff of eps^6, polynomial in n of order 1 - -15, 9, 1024, - // C3[5], coeff of eps^5, polynomial in n of order 2 - 75, -90, 42, 5120, - // C3[6], coeff of eps^7, polynomial in n of order 0 - 99, 16384, - // C3[6], coeff of eps^6, polynomial in n of order 1 - -99, 44, 8192, - // C3[7], coeff of eps^7, polynomial in n of order 0 - 429, 114688, - }; - - evaluate_coeffs_C3x(n, c, coeff); - } - // Post condition: offset == sizeof(coeff) / sizeof(CT) && k == coeffs_C3_size - } - /* \brief Given the set of coefficients coeffs2[] evaluate on C3 and return the set of coefficients coeffs1[]. From 96074e2ab2e9f3bddd81f56c5d23438574c0c040 Mon Sep 17 00:00:00 2001 From: Adeel Ahmad Date: Sat, 9 Jun 2018 16:15:55 +0500 Subject: [PATCH 2/4] [test] Use series order 2 for Karney's direct method Boost Geometry dataset is created with series order 2. Therefore, the tests fail at all other values. --- test/formulas/direct.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/formulas/direct.cpp b/test/formulas/direct.cpp index bcfcec33c..9cd4bdf30 100644 --- a/test/formulas/direct.cpp +++ b/test/formulas/direct.cpp @@ -64,7 +64,7 @@ void test_all(expected_results const& results) result.reverse_azimuth *= r2d; check_direct(result, results.thomas, results.karney, 0.0000001); - typedef bg::formula::karney_direct ka_t; + typedef bg::formula::karney_direct ka_t; result = ka_t::apply(lon1d, lat1d, distance, azi12d, spheroid); check_direct(result, results.thomas, results.karney, 0.0000001); } From fe1b9ff8ba3b4f7ed799ae4e5a9c5c69bd795f5f Mon Sep 17 00:00:00 2001 From: Adeel Ahmad Date: Sat, 9 Jun 2018 16:17:42 +0500 Subject: [PATCH 3/4] [test] Update geodesic scale (M12) in GeographicLib dataset M12 is calculated manually using GeographicLib. Previously, GEOGRAPHICLIB_PRECISION was set to 2 (default) with series order set to 6. The updated values are generated with GEOGRAPHICLIB_PRECISION set to 3 and series order set to 7. Build instructions are provided here: https://geographiclib.sourceforge.io/html/install.html --- test/formulas/direct_cases_antipodal.hpp | 200 +++++++++++------------ 1 file changed, 100 insertions(+), 100 deletions(-) diff --git a/test/formulas/direct_cases_antipodal.hpp b/test/formulas/direct_cases_antipodal.hpp index 37214fe1b..fdbbc6e98 100644 --- a/test/formulas/direct_cases_antipodal.hpp +++ b/test/formulas/direct_cases_antipodal.hpp @@ -35,304 +35,304 @@ expected_results_antipodal expected_antipodal[] = { { { 0, 31.394417440639 }, 19980218.4055399, 34.266322930672, - { 179.615601631202912322, -31.275540610835465807, 145.782701113414306756, 49490.8807994496209, -0.99598340069666346785 } + { 179.615601631202912322, -31.275540610835465807, 145.782701113414306756, 49490.8807994496209, -0.9961164510125257909767434 } },{ { 0, 29.788792273749 }, 19887224.5407334, 74.302205994192, - { 178.569451327813675741, -29.558013672069422725, 106.156240654579267308, 97043.7545600593058, -0.99585265538534928353 } + { 178.569451327813675741, -29.558013672069422725, 106.156240654579267308, 97043.7545600593058, -0.9986240311478448829847661 } },{ { 0, 46.471843094141 }, 19944337.8863917, 63.693680310665, - { 179.083144618009561276, -46.284166405924629853, 116.699978859005570535, 53139.140576552365, -0.99628290151178156009 } + { 179.083144618009561276, -46.284166405924629853, 116.699978859005570535, 53139.140576552365, -0.9975973096455918888284843 } },{ { 0, 63.016506345929 }, 20000925.7533636, 153.393656073038, - { 179.862869954071637855, -63.02943882703369735, 26.619056019474552953, 12713.9284725111772, -0.99806730524837738994 } + { 179.862869954071637855, -63.02943882703369735, 26.619056019474552953, 12713.9284725111772, -1.003813177921433850612286 } },{ { 0, 19.796231412719 }, 19956338.1330537, 28.272934411318, - { 179.546498474461283862, -19.470586923091672503, 151.789094611690988249, 87191.1749625132931, -0.99680355285706290225 } + { 179.546498474461283862, -19.470586923091672503, 151.789094611690988249, 87191.1749625132931, -0.9970154090276648134395961 } },{ { 0, 6.373459459035 }, 19946581.6983394, 56.859050230583, - { 179.240009269347556917, -6.204887833274217382, 123.169200847008284851, 53958.8698005263939, -0.99880439595523196061 } + { 179.240009269347556917, -6.204887833274217382, 123.169200847008284851, 53958.8698005263939, -0.9993490490811010928734123 } },{ { 0, 66.380766469414 }, 19986277.7696849, 38.646950203356, - { 179.632633596894388233, -66.27177494016956425, 141.550919825824399405, 22198.215635049214, -0.9984201835509521894 } + { 179.632633596894388233, -66.27177494016956425, 141.550919825824399405, 22198.215635049214, -0.996949176054954412282659 } },{ { 0, 16.483421185231 }, 19962737.9842573, 163.431254767325, - { 179.731567273052604726, -16.818424446748042212, 16.598399455529231288, 95318.4104529881431, -0.99723427960580335316 } + { 179.731567273052604726, -16.818424446748042212, 16.598399455529231288, 95318.4104529881431, -1.002722102329797498345386 } },{ { 0, 4.215702155486 }, 19932517.393764, 65.543168480886, - { 179.093771177769992874, -4.051917290690976764, 114.482669479963380006, 55205.4553703842317, -0.99916694551569362748 } + { 179.093771177769992874, -4.051917290690976764, 114.482669479963380006, 55205.4553703842317, -0.9996558584250565483090949 } },{ { 0, 40.71372085907 }, 19951133.3595356, 143.672151631634, - { 179.404612926861498984, -41.047052242159400671, 36.54002600969304553, 70931.1530155553621, -0.99601226064330683485 } + { 179.404612926861498984, -41.047052242159400671, 36.54002600969304553, 70931.1530155553621, -1.004141695740772786027591 } },{ { 0, 15.465481491654 }, 19877383.8879911, 36.289185640976, - { 179.020726605204181801, -14.622355549425900341, 143.875673907461159912, 156419.0806764376957, -0.99717590257108590368 } + { 179.020726605204181801, -14.622355549425900341, 143.875673907461159912, 156419.0806764376957, -0.9976390743971695870329942 } },{ { 0, 17.586197343531 }, 19982280.4639115, 157.929615091529, - { 179.722490735835379144, -17.731394230364437075, 22.089021105298661023, 69727.5357849255557, -0.99710409371925123878 } + { 179.722490735835379144, -17.731394230364437075, 22.089021105298661023, 69727.5357849255557, -1.00280451698301228773396 } },{ { 0, 5.7442768247 }, 19902873.7431814, 116.146983678305, - { 178.85894724576868462, -6.039853564481335581, 63.91482549951374061, 87149.6188944111673, -0.99883071172416715289 } + { 178.85894724576868462, -6.039853564481335581, 63.91482549951374061, 87149.6188944111673, -1.000393328930967508458988 } },{ { 0, 32.002904282111 }, 19967670.3104795, 163.052160078191, - { 179.744925422107715439, -32.297934520693132807, 17.004175883388454943, 78311.3164829640582, -0.99597193334487110761 } + { 179.744925422107715439, -32.297934520693132807, 17.004175883388454943, 78311.3164829640582, -1.004499034453024313763049 } },{ { 0, 55.902716926362 }, 19970525.337607, 98.927641063414, - { 179.300685189522463007, -55.934320218634018206, 81.374264168520557301, 23554.0093185709067, -0.99721760041260698593 } + { 179.300685189522463007, -55.934320218634018206, 81.374264168520557301, 23554.0093185709067, -1.0007278877908344522649 } },{ { 0, 22.69939784398 }, 19959286.1903172, 74.253870776761, - { 179.294173474584020749, -22.654875407651067149, 105.811588890213155275, 22369.7179951557679, -0.99650952667426662135 } + { 179.294173474584020749, -22.654875407651067149, 105.811588890213155275, 22369.7179951557679, -0.9989721814190034790826959 } },{ { 0, 41.312328471121 }, 19962690.5721867, 11.277616109847, - { 179.817186837717804928, -40.954523601529804886, 168.784288786443902199, 77252.6121237260201, -0.99601334953687414853 } + { 179.817186837717804928, -40.954523601529804886, 168.784288786443902199, 77252.6121237260201, -0.9948251514715273688795397 } },{ { 0, 27.927415327453 }, 19961296.8828333, 23.166421459647, - { 179.636508875679110143, -27.607314264234172721, 156.905194492817275222, 83096.5801709291101, -0.99610609795569049485 } + { 179.636508875679110143, -27.607314264234172721, 156.905194492817275222, 83096.5801709291101, -0.9959596927676567156505726 } },{ { 0, 41.567228741451 }, 19944253.4454809, 176.66609526064, - { 179.931812964300204608, -42.103039532074194347, 3.361859685835349219, 96859.08180779197, -0.99604624873858405021 } + { 179.931812964300204608, -42.103039532074194347, 3.361859685835349219, 96859.08180779197, -1.005136071404876275492239 } },{ { 0, 37.384208978567 }, 19928705.5911445, 39.072534864532, - { 179.225180174670992261, -36.916085670712060029, 141.212743814390850106, 92667.7834060578402, -0.99583616315460821156 } + { 179.225180174670992261, -36.916085670712060029, 141.212743814390850106, 92667.7834060578402, -0.9959555168591592858788435 } },{ { 0, 59.011868682852 }, 19970442.3788306, 44.970301291063, - { 179.424923485514312807, -58.82705468054708336, 135.333817989802309531, 38071.1136293083857, -0.99754686309848117354 } + { 179.424923485514312807, -58.82705468054708336, 135.333817989802309531, 38071.1136293083857, -0.9966589428927073192592684 } },{ { 0, 35.515406087737 }, 19948918.9139751, 28.528972431952, - { 179.50369572149476218, -35.119747127350258822, 151.622257906284404073, 84564.0387217601751, -0.9958683164291525225 } + { 179.50369572149476218, -35.119747127350258822, 151.622257906284404073, 84564.0387217601751, -0.9955628617991693771129176 } },{ { 0, 58.170252463184 }, 19961407.0813807, 128.021116291844, - { 179.254737571455023977, -58.372261836268550805, 52.399129705193347143, 43715.3070711393309, -0.99746161015888423762 } + { 179.254737571455023977, -58.372261836268550805, 52.399129705193347143, 43715.3070711393309, -1.002852737132807475024451 } },{ { 0, 34.012183807959 }, 19970955.843065, 168.944519134772, - { 179.83713352180447672, -34.29640782899529639, 11.093048811826875835, 76493.5814538538151, -0.99594085068133375582 } + { 179.83713352180447672, -34.29640782899529639, 11.093048811826875835, 76493.5814538538151, -1.004765235455867102248688 } },{ { 0, 45.510762948553 }, 19940248.3450143, 99.886784003837, - { 178.981682578823726535, -45.582753595227824235, 80.542330522982505877, 48555.1946627894972, -0.99622530350349169925 } + { 178.981682578823726535, -45.582753595227824235, 80.542330522982505877, 48555.1946627894972, -1.000838077509063557589755 } },{ { 0, 4.19841765451 }, 19970496.5132933, 89.561550657928, - { 179.398024428225540172, -4.198416896099783242, 90.438456568689151881, 14.8790480103109, -0.99921964515553229891 } + { 179.398024428225540172, -4.198416896099783242, 90.438456568689151881, 14.8790480103109, -0.9999941048102859313703554 } },{ { 0, 40.890119148103 }, 19926563.5817492, 165.437641169967, - { 179.6557148951668192, -41.553556264538302258, 14.713597527941311478, 111805.7305227545923, -0.99598758014963484353 } + { 179.6557148951668192, -41.553556264538302258, 14.713597527941311478, 111805.7305227545923, -1.004922949334065759787078 } },{ { 0, 28.096672787686 }, 19883901.8482359, 115.174366374632, - { 178.606868012231657724, -28.472055035513955205, 65.257367020445564176, 107880.4353518862363, -0.99595011741363181912 } + { 178.606868012231657724, -28.472055035513955205, 65.257367020445564176, 107880.4353518862363, -1.001708030733315814243475 } },{ { 0, 6.50572154271 }, 19917276.4101551, 79.069492719523, - { 178.926013840891647541, -6.411745140559297675, 100.985091481519557845, 57073.3242952680707, -0.99872883639262399758 } + { 178.926013840891647541, -6.411745140559297675, 100.985091481519557845, 57073.3242952680707, -0.9997366669338085325645891 } },{ { 0, .468835109567 }, 19849380.7342734, 80.234636214474, - { 178.325942223692180692, -.281751687044281805, 99.77243368342786593, 123845.4568822078908, -0.99961835625163353303 } + { 178.325942223692180692, -.281751687044281805, 99.77243368342786593, 123845.4568822078908, -0.9998014372091407881673782 } },{ { 0, 1.682746325049 }, 19890026.0274781, 10.076182752451, - { 179.717131561406935483, -.677647430701204515, 169.927471515299313238, 177917.2104306563981, -0.9995304688134802884 } + { 179.717131561406935483, -.677647430701204515, 169.927471515299313238, 177917.2104306563981, -0.9995380556912621520019267 } },{ { 0, 10.711305126218 }, 19962987.2134077, 7.528253696796, - { 179.874050163405229937, -10.349315378531556046, 172.480576051850009046, 104175.1095378254456, -0.99808700197799249398 } + { 179.874050163405229937, -10.349315378531556046, 172.480576051850009046, 104175.1095378254456, -0.9980718537552389151793625 } },{ { 0, 53.374321544652 }, 19980478.1457438, 23.324715976877, - { 179.729445806011012057, -53.196257519024042184, 156.777734080146664812, 41907.8869272231053, -0.99695322723379165009 } + { 179.729445806011012057, -53.196257519024042184, 156.777734080146664812, 41907.8869272231053, -0.9953335962777076279710611 } },{ { 0, 39.680221664519 }, 19956191.7841809, 7.075406493429, - { 179.87506206720154785, -39.256187213040660911, 172.967624741991546131, 86943.8110669895148, -0.99594142266924268192 } + { 179.87506206720154785, -39.256187213040660911, 172.967624741991546131, 86943.8110669895148, -0.9948010879096678981434003 } },{ { 0, 1.377666714083 }, 19925401.4931301, 95.29199069739, - { 178.994542525209058878, -1.415358715570225495, 84.7178724483824156, 45800.9140624827059, -0.99967079575227224542 } + { 178.994542525209058878, -1.415358715570225495, 84.7178724483824156, 45800.9140624827059, -0.9999980317051245028462866 } },{ { 0, 48.751426624188 }, 19988599.1160495, 40.252328570137, - { 179.661697715070846977, -48.688146707479475147, 139.808452951157199824, 26322.3790862461568, -0.99654000795747821329 } + { 179.661697715070846977, -48.688146707479475147, 139.808452951157199824, 26322.3790862461568, -0.9959992457241298392713741 } },{ { 0, 59.443039048494 }, 19969935.9534732, 93.052184108221, - { 179.247605418616998285, -59.454371825393424121, 87.331416513795326158, 25342.4691896499534, -0.99760844716107632824 } + { 179.247605418616998285, -59.454371825393424121, 87.331416513795326158, 25342.4691896499534, -1.000207278488970808263958 } },{ { 0, 4.122408476235 }, 19938291.6332293, 167.73479753304, - { 179.749430572914989772, -4.689124208743755363, 12.274635577599782826, 127855.6475863583497, -0.99919442400871316678 } + { 179.749430572914989772, -4.689124208743755363, 12.274635577599782826, 127855.6475863583497, -1.000686009028376572587218 } },{ { 0, 46.422470082432 }, 19931980.7029341, 86.67365350297, - { 178.857408435141563774, -46.390934261324541952, 93.852683224054943377, 56114.680046867064, -0.99626178341627869006 } + { 178.857408435141563774, -46.390934261324541952, 93.852683224054943377, 56114.680046867064, -0.9996070961163002954936486 } },{ { 0, 32.614423729024 }, 19926887.3785175, 24.943814520557, - { 179.460593512880455451, -32.01874745886238612, 155.229917137448282531, 112355.3319340873104, -0.99584842355298219818 } + { 179.460593512880455451, -32.01874745886238612, 155.229917137448282531, 112355.3319340873104, -0.9955621506768719286041558 } },{ { 0, 3.242895277973 }, 19964490.4789049, 30.247458779683, - { 179.556428318080663113, -3.001106476068264917, 149.760178923092147784, 80929.0418317066044, -0.99938705290848561802 } + { 179.556428318080663113, -3.001106476068264917, 149.760178923092147784, 80929.0418317066044, -0.9994741842703449041015323 } },{ { 0, 6.29069210113 }, 19877160.8505733, 94.34299459284, - { 178.556859259685624933, -6.354208910915346725, 85.750059038253282986, 94127.1566760840083, -0.99866089792332934927 } + { 178.556859259685624933, -6.354208910915346725, 85.750059038253282986, 94127.1566760840083, -0.9999763973509048521344338 } },{ { 0, 18.232086569498 }, 19927978.7462175, 164.41905055334, - { 179.658073278238477245, -18.87394850776853555, 15.640779355822506503, 129771.1882449660559, -0.99696204469368099321 } + { 179.658073278238477245, -18.87394850776853555, 15.640779355822506503, 129771.1882449660559, -1.002934604390638743953712 } },{ { 0, 12.049849333181 }, 19908004.4552909, 9.418096768309, - { 179.761046682699610657, -11.201990279782499264, 170.610608272305604585, 157761.5040571466343, -0.99777424243303902696 } + { 179.761046682699610657, -11.201990279782499264, 170.610608272305604585, 157761.5040571466343, -0.9977614744975109587398973 } },{ { 0, 40.289465276136 }, 19985674.936106, 143.092606818963, - { 179.644208494155329095, -40.370034926441385999, 36.958610382613096419, 36200.8933724688593, -0.99602880093986934096 } + { 179.644208494155329095, -40.370034926441385999, 36.958610382613096419, 36200.8933724688593, -1.004149658760912620643173 } },{ { 0, 2.197784650379 }, 19910509.7517973, 1.542117609437, - { 179.961199531084784854, -1.353440827124394777, 178.458582198505846426, 160403.6285079348996, -0.99948867836200405712 } + { 179.961199531084784854, -1.353440827124394777, 178.458582198505846426, 160403.6285079348996, -0.999488724639301117833555 } },{ { 0, 1.966575272177 }, 19875595.6267266, 170.112968791865, - { 179.699817324905962184, -3.101125282483752618, 9.89572776349855838, 192355.7206665719908, -0.99943592820130777721 } + { 179.699817324905962184, -3.101125282483752618, 9.89572776349855838, 192355.7206665719908, -1.000154635898045583290543 } },{ { 0, 25.078832492684 }, 19887997.7953866, 77.264585323781, - { 178.600804840925824646, -24.897833702325682511, 103.101167809583406892, 92442.9124509225839, -0.99614702274067257193 } + { 178.600804840925824646, -24.897833702325682511, 103.101167809583406892, 92442.9124509225839, -0.9989811898386008840464503 } },{ { 0, 31.740361941314 }, 19972325.3556069, 143.930820896999, - { 179.553485210731879874, -31.909206787477701871, 36.145242998351638503, 54883.4113710054145, -0.99597837783719567195 } + { 179.553485210731879874, -31.909206787477701871, 36.145242998351638503, 54883.4113710054145, -1.003794616281159395249425 } },{ { 0, .05479250563 }, 19858049.4780499, 41.349430623518, - { 178.822647462220726609, .836079031223269324, 138.645259065012502544, 169078.442370111714, -0.9997266451533399767 } + { 178.822647462220726609, .836079031223269324, 138.645259065012502544, 169078.442370111714, -0.9997793696948588326408637 } },{ { 0, 36.685139871608 }, 19968965.6773632, 89.167975517493, - { 179.366667224014334712, -36.6833040833258687, 90.921025521408327068, 13327.2156799476918, -0.99592417628692353482 } + { 179.366667224014334712, -36.6833040833258687, 90.921025521408327068, 13327.2156799476918, -0.9999165379463486296850866 } },{ { 0, 3.451199399671 }, 19938203.3838544, 91.541212417048, - { 179.107509334399258305, -3.459003521120242021, 88.476282464773035164, 32316.1747698810781, -0.9993151254968675179 } + { 179.107509334399258305, -3.459003521120242021, 88.476282464773035164, 32316.1747698810781, -1.000003974843958109899184 } },{ { 0, 27.692898794247 }, 19883493.6699045, 88.406440883665, - { 178.512356615673144314, -27.666009301228316555, 92.036345087713397961, 94128.7880896190836, -0.99595722110800843918 } + { 178.512356615673144314, -27.666009301228316555, 92.036345087713397961, 94128.7880896190836, -0.9997364583229516115064732 } },{ { 0, 17.363238291869 }, 19980749.7638027, 39.697196316589, - { 179.567921315455829491, -17.288872648596950413, 140.321938237586060826, 46975.9359427664379, -0.9971281847750985694 } + { 179.567921315455829491, -17.288872648596950413, 140.321938237586060826, 46975.9359427664379, -0.9976876919817150126995782 } },{ { 0, 37.006775102539 }, 19949309.9180043, 116.455543532607, - { 179.191103068859169842, -37.156365616364686838, 63.771817992036617793, 45856.1961421018701, -0.99590619058035212419 } + { 179.191103068859169842, -37.156365616364686838, 63.771817992036617793, 45856.1961421018701, -1.002219628589184219390543 } },{ { 0, 45.572883540957 }, 19940027.8586414, 137.627256708444, - { 179.224707765088686272, -45.94675931323086696, 42.723991162977357301, 74208.4359612889496, -0.99624902751220101305 } + { 179.224707765088686272, -45.94675931323086696, 42.723991162977357301, 74208.4359612889496, -1.003808877864471522261582 } },{ { 0, 43.63393981955 }, 19931045.2914508, 91.203625101465, - { 178.878236417027994157, -43.642335115130514773, 89.268780774643462256, 55253.5406349861764, -0.99608620009401716011 } + { 178.878236417027994157, -43.642335115130514773, 89.268780774643462256, 55253.5406349861764, -1.000029741531505212250378 } },{ { 0, 38.4995307019 }, 19918391.2222193, 141.232864609445, - { 179.143856004445269342, -39.042223438550921467, 39.117947060740562295, 102217.2563106863077, -0.99588724635854519729 } + { 179.143856004445269342, -39.042223438550921467, 39.117947060740562295, 102217.2563106863077, -1.003881641157329480734325 } },{ { 0, 27.55015339382 }, 19986004.7358853, 137.025135713548, - { 179.596220103573824099, -27.587412128122249651, 42.992898351962011956, 33938.7346646670654, -0.99616434874063342075 } + { 179.596220103573824099, -27.587412128122249651, 42.992898351962011956, 33938.7346646670654, -1.003160443902811658199205 } },{ { 0, 1.54507498314 }, 19978593.3191777, 36.816106412092, - { 179.567115633151308577, -1.448861185025252004, 143.185763012309022403, 56320.5800276739168, -0.99970846248568390191 } + { 179.567115633151308577, -1.448861185025252004, 143.185763012309022403, 56320.5800276739168, -0.9997704994624671810221454 } },{ { 0, 45.217063644222 }, 19987042.0782465, 18.114645812265, - { 179.807382581661125, -45.086424050571516283, 161.928120141429818658, 45544.2915061261936, -0.99626823185730628563 } + { 179.807382581661125, -45.086424050571516283, 161.928120141429818658, 45544.2915061261936, -0.9949741794148549555321798 } },{ { 0, 13.473522450751 }, 19987364.078382, 156.839609002403, - { 179.726941062277208626, -13.570372758027936877, 23.170293747820406391, 65329.9068132034472, -0.99767717345868900392 } + { 179.726941062277208626, -13.570372758027936877, 23.170293747820406391, 65329.9068132034472, -1.002190931895065541886065 } },{ { 0, 6.287741997374 }, 19912159.8245954, 132.954797451112, - { 179.071252372259552052, -6.743450924917895817, 47.100789519677419746, 104772.4027498097375, -0.99875728461227553101 } + { 179.071252372259552052, -6.743450924917895817, 47.100789519677419746, 104772.4027498097375, -1.00071252411103014544249 } },{ { 0, 7.639709001531 }, 19976374.3699535, 29.731916588299, - { 179.616156296978583335, -7.48702643786017917, 150.279582966919438164, 69224.6591757209539, -0.99861517221927087462 } + { 179.616156296978583335, -7.48702643786017917, 150.279582966919438164, 69224.6591757209539, -0.9987897920867413009931961 } },{ { 0, 5.893688050348 }, 19886907.2520668, 14.653438882877, - { 179.586212000450856399, -4.888408917114795625, 165.371181401863458848, 177183.5330818593022, -0.99875831501903877818 } + { 179.586212000450856399, -4.888408917114795625, 165.371181401863458848, 177183.5330818593022, -0.9987946470311208020708207 } },{ { 0, 61.997076235476 }, 19976288.2901729, 149.562797049254, - { 179.605779116829636081, -62.19593758437129915, 30.65850204223272625, 36696.2853801462176, -0.99792483695855294101 } + { 179.605779116829636081, -62.19593758437129915, 30.65850204223272625, 36696.2853801462176, -1.003730714324371446686916 } },{ { 0, 50.507637741656 }, 19979542.5263293, 171.564028344478, - { 179.893569206021038536, -50.721890799900161112, 8.4746613464253591, 50644.5234828162697, -0.99670226818003293534 } + { 179.893569206021038536, -50.721890799900161112, 8.4746613464253591, 50644.5234828162697, -1.005088816322817598953449 } },{ { 0, 7.484475238477 }, 19867425.2906303, 57.020570370985, - { 178.638400003000590878, -6.926155588124333461, 123.087267812322270238, 132929.2775641349633, -0.99841820367274103365 } + { 178.638400003000590878, -6.926155588124333461, 123.087267812322270238, 132929.2775641349633, -0.9990970426773380551267907 } },{ { 0, 56.851165323215 }, 19988235.9960515, 112.345749045605, - { 179.587046628550073045, -56.875248360744638525, 67.744017057185404441, 9971.0934553515518, -0.99734849887992094164 } + { 179.587046628550073045, -56.875248360744638525, 67.744017057185404441, 9971.0934553515518, -1.001828592498714131384455 } },{ { 0, 10.692273150738 }, 19893210.3050033, 102.824601316946, - { 178.709520715733071393, -10.851727623036704339, 77.308514969817191459, 83032.7122948051111, -0.99796077650539405379 } + { 178.709520715733071393, -10.851727623036704339, 77.308514969817191459, 83032.7122948051111, -1.000343455845084243900113 } },{ { 0, 46.694739303788 }, 19975447.9283188, 174.663684259477, - { 179.926838145841924189, -46.948618153686522669, 5.361568174833475454, 59614.5876209460645, -0.9963829846069084395 } + { 179.926838145841924189, -46.948618153686522669, 5.361568174833475454, 59614.5876209460645, -1.005204848752017347248908 } },{ { 0, 15.804386137005 }, 19855850.8800526, 74.932089158884, - { 178.367587635209819128, -15.522042847777054984, 105.357235560913450667, 123350.4326645237628, -0.99706137589256171871 } + { 178.367587635209819128, -15.522042847777054984, 105.357235560913450667, 123350.4326645237628, -0.9990915785464752706503469 } },{ { 0, 4.371450175299 }, 19979071.1035552, 164.163592252794, - { 179.780887420199549421, -4.566109732313098407, 15.840695025950408814, 84137.2115482558728, -0.99919490909391039946 } + { 179.780887420199549421, -4.566109732313098407, 15.840695025950408814, 84137.2115482558728, -1.00076323969894748092211 } },{ { 0, 30.894388279688 }, 19968681.8321577, 77.35154610481, - { 179.375426183521944524, -30.871308884744172663, 102.709506078439532936, 14048.0277985734058, -0.99599179229723178164 } + { 179.375426183521944524, -30.871308884744172663, 102.709506078439532936, 14048.0277985734058, -0.9989751763364228440383701 } },{ { 0, 9.541166838639 }, 19848553.7844137, 118.441353539081, - { 178.432934555386452839, -10.09982228112793472, 61.736686215549403663, 144831.1911566651614, -0.99800476808793336936 } + { 178.432934555386452839, -10.09982228112793472, 61.736686215549403663, 144831.1911566651614, -1.000605486201104942726309 } },{ { 0, 8.489292700054 }, 19995477.1669578, 171.963952699866, - { 179.906698338023119097, -8.559237750032113623, 8.037517851139094467, 72192.60793572974, -0.9984792781676200546 } + { 179.906698338023119097, -8.559237750032113623, 8.037517851139094467, 72192.60793572974, -1.001520684863064588341133 } },{ { 0, 19.562401114224 }, 19893208.1788508, 126.362762598128, - { 178.838724116996037606, -20.05038360490599475, 53.875560227496658204, 112181.7524188837615, -0.99671734436245396083 } + { 178.838724116996037606, -20.05038360490599475, 53.875560227496658204, 112181.7524188837615, -1.001852026688027773315692 } },{ { 0, 42.260350252749 }, 19942715.0054774, 170.703419847646, - { 179.807860448877064601, -42.79985897702184353, 9.377654670896439828, 96336.3477142010769, -0.99607495753304098329 } + { 179.807860448877064601, -42.79985897702184353, 9.377654670896439828, 96336.3477142010769, -1.005086424064435460636394 } },{ { 0, 24.511403144656 }, 19924809.5184876, 102.913211410163, - { 178.957598444862223515, -24.616808725039883945, 77.297538210434837096, 55403.453072179318, -0.99629589741710011808 } + { 178.957598444862223515, -24.616808725039883945, 77.297538210434837096, 55403.453072179318, -1.00084083091888388877648 } },{ { 0, 20.844284170708 }, 19909084.6340808, 44.172784008084, - { 179.069258863637226633, -20.321320573298341477, 136.01627115731728436, 111009.0987238994608, -0.99659406562612795621 } + { 179.069258863637226633, -20.321320573298341477, 136.01627115731728436, 111009.0987238994608, -0.997389183621779017239594 } },{ { 0, 2.426010809098 }, 19840940.6924189, 94.315194952561, - { 178.236397468862000784, -2.513715200833756776, 85.734896842737189557, 130002.6104886615638, -0.99922656404178245015 } + { 178.236397468862000784, -2.513715200833756776, 85.734896842737189557, 130002.6104886615638, -0.9998252498449916409405634 } },{ { 0, 6.600682554664 }, 19878412.28273, 168.167678684515, - { 179.646475458013797028, -7.699164822656561787, 11.861035812918738552, 187426.3958525886692, -0.99861342289130949901 } + { 179.646475458013797028, -7.699164822656561787, 11.861035812918738552, 187426.3958525886692, -1.000982848560649784010017 } },{ { 0, 23.372339802326 }, 19899498.4582543, 161.197647943542, - { 179.499422665106094027, -24.239465200482591299, 18.932355367478826536, 151863.2545535951091, -0.99635421423038206257 } + { 179.499422665106094027, -24.239465200482591299, 18.932355367478826536, 151863.2545535951091, -1.003476668684313999812749 } },{ { 0, 16.194668264095 }, 19874825.6683239, 148.942349959054, - { 179.115193814080201851, -17.129419031459576897, 31.225656401221968078, 166033.3161394594622, -0.99709176416695455281 } + { 179.115193814080201851, -17.129419031459576897, 31.225656401221968078, 166033.3161394594622, -1.002220322222336505702499 } },{ { 0, 1.528726471528 }, 19897803.9939987, 69.212891442493, - { 178.791047180477802091, -1.282203000582034597, 110.802928803578167132, 85252.8333849204133, -0.99957999688525089876 } + { 178.791047180477802091, -1.282203000582034597, 110.802928803578167132, 85252.8333849204133, -0.9998271442281568740497941 } },{ { 0, 6.297249676078 }, 19864042.0495193, 56.274639904925, - { 178.623258703845895437, -5.709470001196540278, 123.817184177744186806, 137475.1283083659258, -0.99861474729636867664 } + { 178.623258703845895437, -5.709470001196540278, 123.817184177744186806, 137475.1283083659258, -0.9991904501783995893996783 } },{ { 0, 17.393540327984 }, 19962624.6302607, 107.855062015266, - { 179.330156510680163326, -17.431100690958209424, 72.181322855288535245, 19320.5501845044839, -0.99711019484200580365 } + { 179.330156510680163326, -17.431100690958209424, 72.181322855288535245, 19320.5501845044839, -1.000918417796891303852592 } },{ { 0, 46.284685151236 }, 19990422.3478916, 14.758013867151, - { 179.852534804091121255, -46.176234945675219984, 165.271681964991897184, 42614.1796365710104, -0.99634649632519134421 } + { 179.852534804091121255, -46.176234945675219984, 165.271681964991897184, 42614.1796365710104, -0.9948945922618399753472283 } },{ { 0, 14.924320176299 }, 19891861.8615337, 31.446544793174, - { 179.195663739713760883, -14.125476432252858442, 148.678916887199611191, 149419.6596309045804, -0.99729741460688270394 } + { 179.195663739713760883, -14.125476432252858442, 148.678916887199611191, 149419.6596309045804, -0.9976201425853329563713315 } },{ { 0, 23.668824656069 }, 19938736.4442268, 148.091483667618, - { 179.409875478773990359, -24.107855233601412399, 32.02919257641173958, 97771.7687385830819, -0.99640366072092678706 } + { 179.409875478773990359, -24.107855233601412399, 32.02919257641173958, 97771.7687385830819, -1.003232628720005910772511 } },{ { 0, 46.986276695896 }, 19968596.0414782, 174.796708941456, - { 179.92040916864362177, -47.301644191214905832, 5.234240076649939638, 66113.7417494369769, -0.99639889458222818952 } + { 179.92040916864362177, -47.301644191214905832, 5.234240076649939638, 66113.7417494369769, -1.005190954526080850226118 } },{ { 0, 65.946144289524 }, 19993734.5109736, 25.375428509648, - { 179.808282612725835525, -65.871840130833632868, 154.703163938350061652, 18355.2254271672769, -0.99838571720931879039 } + { 179.808282612725835525, -65.871840130833632868, 154.703163938350061652, 18355.2254271672769, -0.9964369359146106126432461 } },{ { 0, 10.950298933293 }, 19975919.5586889, 28.779018914489, - { 179.624609619829763098, -10.787771536605316781, 151.238005588662201946, 70291.1998404303581, -0.99806099887646559932 } + { 179.624609619829763098, -10.787771536605316781, 151.238005588662201946, 70291.1998404303581, -0.9982720718341152112444356 } },{ { 0, 13.609869340778 }, 19913213.8514358, 129.616021271129, - { 179.035623147420893383, -14.023624108675206222, 50.506400999466711623, 97596.7664002074776, -0.99755852834357494618 } + { 179.035623147420893383, -14.023624108675206222, 50.506400999466711623, 97596.7664002074776, -1.00146664642314031927646 } },{ { 0, 48.701427557433 }, 19972955.2699173, 102.875149183407, - { 179.385565054218238481, -48.735316652259656533, 77.294384444682547869, 18461.7742226227697, -0.99652223116852467477 } + { 179.385565054218238481, -48.735316652259656533, 77.294384444682547869, 18461.7742226227697, -1.001146768554290695098057 } },{ { 0, 31.519172055785 }, 19952318.3772514, 26.247105619999, - { 179.555251675378549409, -31.140142027808697534, 153.865822276646938125, 86354.7117605101002, -0.99593468381798511135 } + { 179.555251675378549409, -31.140142027808697534, 153.865822276646938125, 86354.7117605101002, -0.9957399483998249749283627 } },{ { 0, 31.863784754278 }, 19993324.8682601, 29.572313410211, - { 179.722489476483407524, -31.826935359797657785, 150.440607907359037187, 41427.6181613499234, -0.9959831508497293262 } + { 179.722489476483407524, -31.826935359797657785, 150.440607907359037187, 41427.6181613499234, -0.9958880090011472640794746 } },{ { 0, 76.434608546092 }, 19997750.023578, 167.428385412814, - { 179.918287057674124459, -76.48787937532808951, 12.621032110142724567, 9619.5267710862108, -0.99943031992965880583 } + { 179.918287057674124459, -76.48787937532808951, 12.621032110142724567, 9619.5267710862108, -1.002339638930915896456245 } },{ { 0, 73.114273316483 }, 19992866.6147806, 78.154765899661, - { 179.576736605988553624, -73.098788070892914568, 102.085693546950923465, 8580.6475692800946, -0.99913315932148838439 } + { 179.576736605988553624, -73.098788070892914568, 102.085693546950923465, 8580.6475692800946, -0.9993841433084754598747609 } },{ { 0, 1.125639056292 }, 19852573.5442848, 67.184842289382, - { 178.426819580880619395, -.694775021853292564, 112.831314850896246589, 132932.8743502563937, -0.99950982898040086067 } + { 178.426819580880619395, -.694775021853292564, 112.831314850896246589, 132932.8743502563937, -0.9997329579628334908763393 } } }; From 2cba2fa83fe62c52efd5fc2d7fcb1401264701cf Mon Sep 17 00:00:00 2001 From: Adeel Ahmad Date: Tue, 12 Jun 2018 12:00:52 +0500 Subject: [PATCH 4/4] [test] Calculate geodesic scale (M12) using high precision arithmetic Instructions for building GeographicLib are given here: https://geographiclib.sourceforge.io/html/highprec.html It requires the use of libquadmath package, which is present in g++-7 by default. The cmake command used is: cmake -DCMAKE_CXX_COMPILER=g++-7 -DGEOGRAPHICLIB_PRECISION=4 .. Internally, GeographicLib makes use of float128 as part of Boost Multiprecision library. To output full precision values, use: std::setprecision(std::numeric_limits::max_digits10) --- test/formulas/direct_cases_antipodal.hpp | 200 +++++++++++------------ 1 file changed, 100 insertions(+), 100 deletions(-) diff --git a/test/formulas/direct_cases_antipodal.hpp b/test/formulas/direct_cases_antipodal.hpp index fdbbc6e98..ad5db5d8a 100644 --- a/test/formulas/direct_cases_antipodal.hpp +++ b/test/formulas/direct_cases_antipodal.hpp @@ -35,304 +35,304 @@ expected_results_antipodal expected_antipodal[] = { { { 0, 31.394417440639 }, 19980218.4055399, 34.266322930672, - { 179.615601631202912322, -31.275540610835465807, 145.782701113414306756, 49490.8807994496209, -0.9961164510125257909767434 } + { 179.615601631202912322, -31.275540610835465807, 145.782701113414306756, 49490.8807994496209, -0.996116451012525883079717914370121434 } },{ { 0, 29.788792273749 }, 19887224.5407334, 74.302205994192, - { 178.569451327813675741, -29.558013672069422725, 106.156240654579267308, 97043.7545600593058, -0.9986240311478448829847661 } + { 178.569451327813675741, -29.558013672069422725, 106.156240654579267308, 97043.7545600593058, -0.998624031147844926081802441331092268 } },{ { 0, 46.471843094141 }, 19944337.8863917, 63.693680310665, - { 179.083144618009561276, -46.284166405924629853, 116.699978859005570535, 53139.140576552365, -0.9975973096455918888284843 } + { 179.083144618009561276, -46.284166405924629853, 116.699978859005570535, 53139.140576552365, -0.997597309645591900917338534782174975 } },{ { 0, 63.016506345929 }, 20000925.7533636, 153.393656073038, - { 179.862869954071637855, -63.02943882703369735, 26.619056019474552953, 12713.9284725111772, -1.003813177921433850612286 } + { 179.862869954071637855, -63.02943882703369735, 26.619056019474552953, 12713.9284725111772, -1.00381317792143387457315384381217882 } },{ { 0, 19.796231412719 }, 19956338.1330537, 28.272934411318, - { 179.546498474461283862, -19.470586923091672503, 151.789094611690988249, 87191.1749625132931, -0.9970154090276648134395961 } + { 179.546498474461283862, -19.470586923091672503, 151.789094611690988249, 87191.1749625132931, -0.997015409027664833985227232915349305 } },{ { 0, 6.373459459035 }, 19946581.6983394, 56.859050230583, - { 179.240009269347556917, -6.204887833274217382, 123.169200847008284851, 53958.8698005263939, -0.9993490490811010928734123 } + { 179.240009269347556917, -6.204887833274217382, 123.169200847008284851, 53958.8698005263939, -0.999349049081101004077254401636309922 } },{ { 0, 66.380766469414 }, 19986277.7696849, 38.646950203356, - { 179.632633596894388233, -66.27177494016956425, 141.550919825824399405, 22198.215635049214, -0.996949176054954412282659 } + { 179.632633596894388233, -66.27177494016956425, 141.550919825824399405, 22198.215635049214, -0.996949176054954366854587988200364634 } },{ { 0, 16.483421185231 }, 19962737.9842573, 163.431254767325, - { 179.731567273052604726, -16.818424446748042212, 16.598399455529231288, 95318.4104529881431, -1.002722102329797498345386 } + { 179.731567273052604726, -16.818424446748042212, 16.598399455529231288, 95318.4104529881431, -1.00272210232979741562076014815829694 } },{ { 0, 4.215702155486 }, 19932517.393764, 65.543168480886, - { 179.093771177769992874, -4.051917290690976764, 114.482669479963380006, 55205.4553703842317, -0.9996558584250565483090949 } + { 179.093771177769992874, -4.051917290690976764, 114.482669479963380006, 55205.4553703842317, -0.999655858425056553784315838129259646 } },{ { 0, 40.71372085907 }, 19951133.3595356, 143.672151631634, - { 179.404612926861498984, -41.047052242159400671, 36.54002600969304553, 70931.1530155553621, -1.004141695740772786027591 } + { 179.404612926861498984, -41.047052242159400671, 36.54002600969304553, 70931.1530155553621, -1.00414169574077272173440178448799998 } },{ { 0, 15.465481491654 }, 19877383.8879911, 36.289185640976, - { 179.020726605204181801, -14.622355549425900341, 143.875673907461159912, 156419.0806764376957, -0.9976390743971695870329942 } + { 179.020726605204181801, -14.622355549425900341, 143.875673907461159912, 156419.0806764376957, -0.997639074397169589580869342171354219 } },{ { 0, 17.586197343531 }, 19982280.4639115, 157.929615091529, - { 179.722490735835379144, -17.731394230364437075, 22.089021105298661023, 69727.5357849255557, -1.00280451698301228773396 } + { 179.722490735835379144, -17.731394230364437075, 22.089021105298661023, 69727.5357849255557, -1.00280451698301242835498214844847098 } },{ { 0, 5.7442768247 }, 19902873.7431814, 116.146983678305, - { 178.85894724576868462, -6.039853564481335581, 63.91482549951374061, 87149.6188944111673, -1.000393328930967508458988 } + { 178.85894724576868462, -6.039853564481335581, 63.91482549951374061, 87149.6188944111673, -1.00039332893096744037109147029696032 } },{ { 0, 32.002904282111 }, 19967670.3104795, 163.052160078191, - { 179.744925422107715439, -32.297934520693132807, 17.004175883388454943, 78311.3164829640582, -1.004499034453024313763049 } + { 179.744925422107715439, -32.297934520693132807, 17.004175883388454943, 78311.3164829640582, -1.00449903445302446414189034840092063 } },{ { 0, 55.902716926362 }, 19970525.337607, 98.927641063414, - { 179.300685189522463007, -55.934320218634018206, 81.374264168520557301, 23554.0093185709067, -1.0007278877908344522649 } + { 179.300685189522463007, -55.934320218634018206, 81.374264168520557301, 23554.0093185709067, -1.00072788779083454713259015989024192 } },{ { 0, 22.69939784398 }, 19959286.1903172, 74.253870776761, - { 179.294173474584020749, -22.654875407651067149, 105.811588890213155275, 22369.7179951557679, -0.9989721814190034790826959 } + { 179.294173474584020749, -22.654875407651067149, 105.811588890213155275, 22369.7179951557679, -0.998972181419003457669703038845909759 } },{ { 0, 41.312328471121 }, 19962690.5721867, 11.277616109847, - { 179.817186837717804928, -40.954523601529804886, 168.784288786443902199, 77252.6121237260201, -0.9948251514715273688795397 } + { 179.817186837717804928, -40.954523601529804886, 168.784288786443902199, 77252.6121237260201, -0.994825151471527391322524636052548885 } },{ { 0, 27.927415327453 }, 19961296.8828333, 23.166421459647, - { 179.636508875679110143, -27.607314264234172721, 156.905194492817275222, 83096.5801709291101, -0.9959596927676567156505726 } + { 179.636508875679110143, -27.607314264234172721, 156.905194492817275222, 83096.5801709291101, -0.995959692767656723511038308060960844 } },{ { 0, 41.567228741451 }, 19944253.4454809, 176.66609526064, - { 179.931812964300204608, -42.103039532074194347, 3.361859685835349219, 96859.08180779197, -1.005136071404876275492239 } + { 179.931812964300204608, -42.103039532074194347, 3.361859685835349219, 96859.08180779197, -1.00513607140487626345759508694754913 } },{ { 0, 37.384208978567 }, 19928705.5911445, 39.072534864532, - { 179.225180174670992261, -36.916085670712060029, 141.212743814390850106, 92667.7834060578402, -0.9959555168591592858788435 } + { 179.225180174670992261, -36.916085670712060029, 141.212743814390850106, 92667.7834060578402, -0.995955516859159284415170532156480476 } },{ { 0, 59.011868682852 }, 19970442.3788306, 44.970301291063, - { 179.424923485514312807, -58.82705468054708336, 135.333817989802309531, 38071.1136293083857, -0.9966589428927073192592684 } + { 179.424923485514312807, -58.82705468054708336, 135.333817989802309531, 38071.1136293083857, -0.996658942892707400140750451100757346 } },{ { 0, 35.515406087737 }, 19948918.9139751, 28.528972431952, - { 179.50369572149476218, -35.119747127350258822, 151.622257906284404073, 84564.0387217601751, -0.9955628617991693771129176 } + { 179.50369572149476218, -35.119747127350258822, 151.622257906284404073, 84564.0387217601751, -0.995562861799169418475230486365035176 } },{ { 0, 58.170252463184 }, 19961407.0813807, 128.021116291844, - { 179.254737571455023977, -58.372261836268550805, 52.399129705193347143, 43715.3070711393309, -1.002852737132807475024451 } + { 179.254737571455023977, -58.372261836268550805, 52.399129705193347143, 43715.3070711393309, -1.00285273713280753682397516968194395 } },{ { 0, 34.012183807959 }, 19970955.843065, 168.944519134772, - { 179.83713352180447672, -34.29640782899529639, 11.093048811826875835, 76493.5814538538151, -1.004765235455867102248688 } + { 179.83713352180447672, -34.29640782899529639, 11.093048811826875835, 76493.5814538538151, -1.0047652354558671561335359001532197 } },{ { 0, 45.510762948553 }, 19940248.3450143, 99.886784003837, - { 178.981682578823726535, -45.582753595227824235, 80.542330522982505877, 48555.1946627894972, -1.000838077509063557589755 } + { 178.981682578823726535, -45.582753595227824235, 80.542330522982505877, 48555.1946627894972, -1.00083807750906350619857221317943186 } },{ { 0, 4.19841765451 }, 19970496.5132933, 89.561550657928, - { 179.398024428225540172, -4.198416896099783242, 90.438456568689151881, 14.8790480103109, -0.9999941048102859313703554 } + { 179.398024428225540172, -4.198416896099783242, 90.438456568689151881, 14.8790480103109, -0.999994104810285944218151144013972953 } },{ { 0, 40.890119148103 }, 19926563.5817492, 165.437641169967, - { 179.6557148951668192, -41.553556264538302258, 14.713597527941311478, 111805.7305227545923, -1.004922949334065759787078 } + { 179.6557148951668192, -41.553556264538302258, 14.713597527941311478, 111805.7305227545923, -1.00492294933406567380984597548376769 } },{ { 0, 28.096672787686 }, 19883901.8482359, 115.174366374632, - { 178.606868012231657724, -28.472055035513955205, 65.257367020445564176, 107880.4353518862363, -1.001708030733315814243475 } + { 178.606868012231657724, -28.472055035513955205, 65.257367020445564176, 107880.4353518862363, -1.00170803073331593502359737613005564 } },{ { 0, 6.50572154271 }, 19917276.4101551, 79.069492719523, - { 178.926013840891647541, -6.411745140559297675, 100.985091481519557845, 57073.3242952680707, -0.9997366669338085325645891 } + { 178.926013840891647541, -6.411745140559297675, 100.985091481519557845, 57073.3242952680707, -0.999736666933808471036115861352300271 } },{ { 0, .468835109567 }, 19849380.7342734, 80.234636214474, - { 178.325942223692180692, -.281751687044281805, 99.77243368342786593, 123845.4568822078908, -0.9998014372091407881673782 } + { 178.325942223692180692, -.281751687044281805, 99.77243368342786593, 123845.4568822078908, -0.999801437209140719808431185811059549 } },{ { 0, 1.682746325049 }, 19890026.0274781, 10.076182752451, - { 179.717131561406935483, -.677647430701204515, 169.927471515299313238, 177917.2104306563981, -0.9995380556912621520019267 } + { 179.717131561406935483, -.677647430701204515, 169.927471515299313238, 177917.2104306563981, -0.999538055691262194990542866435134783 } },{ { 0, 10.711305126218 }, 19962987.2134077, 7.528253696796, - { 179.874050163405229937, -10.349315378531556046, 172.480576051850009046, 104175.1095378254456, -0.9980718537552389151793625 } + { 179.874050163405229937, -10.349315378531556046, 172.480576051850009046, 104175.1095378254456, -0.998071853755238880268052525934763253 } },{ { 0, 53.374321544652 }, 19980478.1457438, 23.324715976877, - { 179.729445806011012057, -53.196257519024042184, 156.777734080146664812, 41907.8869272231053, -0.9953335962777076279710611 } + { 179.729445806011012057, -53.196257519024042184, 156.777734080146664812, 41907.8869272231053, -0.995333596277707566279957518418086693 } },{ { 0, 39.680221664519 }, 19956191.7841809, 7.075406493429, - { 179.87506206720154785, -39.256187213040660911, 172.967624741991546131, 86943.8110669895148, -0.9948010879096678981434003 } + { 179.87506206720154785, -39.256187213040660911, 172.967624741991546131, 86943.8110669895148, -0.994801087909667924868983845954062417 } },{ { 0, 1.377666714083 }, 19925401.4931301, 95.29199069739, - { 178.994542525209058878, -1.415358715570225495, 84.7178724483824156, 45800.9140624827059, -0.9999980317051245028462866 } + { 178.994542525209058878, -1.415358715570225495, 84.7178724483824156, 45800.9140624827059, -0.99999803170512457928253979844157584 } },{ { 0, 48.751426624188 }, 19988599.1160495, 40.252328570137, - { 179.661697715070846977, -48.688146707479475147, 139.808452951157199824, 26322.3790862461568, -0.9959992457241298392713741 } + { 179.661697715070846977, -48.688146707479475147, 139.808452951157199824, 26322.3790862461568, -0.995999245724129789181233718409202993 } },{ { 0, 59.443039048494 }, 19969935.9534732, 93.052184108221, - { 179.247605418616998285, -59.454371825393424121, 87.331416513795326158, 25342.4691896499534, -1.000207278488970808263958 } + { 179.247605418616998285, -59.454371825393424121, 87.331416513795326158, 25342.4691896499534, -1.00020727848897084122370415570912883 } },{ { 0, 4.122408476235 }, 19938291.6332293, 167.73479753304, - { 179.749430572914989772, -4.689124208743755363, 12.274635577599782826, 127855.6475863583497, -1.000686009028376572587218 } + { 179.749430572914989772, -4.689124208743755363, 12.274635577599782826, 127855.6475863583497, -1.00068600902837667732114823593292385 } },{ { 0, 46.422470082432 }, 19931980.7029341, 86.67365350297, - { 178.857408435141563774, -46.390934261324541952, 93.852683224054943377, 56114.680046867064, -0.9996070961163002954936486 } + { 178.857408435141563774, -46.390934261324541952, 93.852683224054943377, 56114.680046867064, -0.999607096116300386512421027873642743 } },{ { 0, 32.614423729024 }, 19926887.3785175, 24.943814520557, - { 179.460593512880455451, -32.01874745886238612, 155.229917137448282531, 112355.3319340873104, -0.9955621506768719286041558 } + { 179.460593512880455451, -32.01874745886238612, 155.229917137448282531, 112355.3319340873104, -0.995562150676871926435751447570510209 } },{ { 0, 3.242895277973 }, 19964490.4789049, 30.247458779683, - { 179.556428318080663113, -3.001106476068264917, 149.760178923092147784, 80929.0418317066044, -0.9994741842703449041015323 } + { 179.556428318080663113, -3.001106476068264917, 149.760178923092147784, 80929.0418317066044, -0.999474184270344845337774586369050667 } },{ { 0, 6.29069210113 }, 19877160.8505733, 94.34299459284, - { 178.556859259685624933, -6.354208910915346725, 85.750059038253282986, 94127.1566760840083, -0.9999763973509048521344338 } + { 178.556859259685624933, -6.354208910915346725, 85.750059038253282986, 94127.1566760840083, -0.999976397350904933070125935046235099 } },{ { 0, 18.232086569498 }, 19927978.7462175, 164.41905055334, - { 179.658073278238477245, -18.87394850776853555, 15.640779355822506503, 129771.1882449660559, -1.002934604390638743953712 } + { 179.658073278238477245, -18.87394850776853555, 15.640779355822506503, 129771.1882449660559, -1.00293460439063886191490837518358603 } },{ { 0, 12.049849333181 }, 19908004.4552909, 9.418096768309, - { 179.761046682699610657, -11.201990279782499264, 170.610608272305604585, 157761.5040571466343, -0.9977614744975109587398973 } + { 179.761046682699610657, -11.201990279782499264, 170.610608272305604585, 157761.5040571466343, -0.997761474497510958414636661473196 } },{ { 0, 40.289465276136 }, 19985674.936106, 143.092606818963, - { 179.644208494155329095, -40.370034926441385999, 36.958610382613096419, 36200.8933724688593, -1.004149658760912620643173 } + { 179.644208494155329095, -40.370034926441385999, 36.958610382613096419, 36200.8933724688593, -1.00414965876091266672176516294712201 } },{ { 0, 2.197784650379 }, 19910509.7517973, 1.542117609437, - { 179.961199531084784854, -1.353440827124394777, 178.458582198505846426, 160403.6285079348996, -0.999488724639301117833555 } + { 179.961199531084784854, -1.353440827124394777, 178.458582198505846426, 160403.6285079348996, -0.999488724639301051588802238256903365 } },{ { 0, 1.966575272177 }, 19875595.6267266, 170.112968791865, - { 179.699817324905962184, -3.101125282483752618, 9.89572776349855838, 192355.7206665719908, -1.000154635898045583290543 } + { 179.699817324905962184, -3.101125282483752618, 9.89572776349855838, 192355.7206665719908, -1.00015463589804554089823795948177576 } },{ { 0, 25.078832492684 }, 19887997.7953866, 77.264585323781, - { 178.600804840925824646, -24.897833702325682511, 103.101167809583406892, 92442.9124509225839, -0.9989811898386008840464503 } + { 178.600804840925824646, -24.897833702325682511, 103.101167809583406892, 92442.9124509225839, -0.998981189838600847075156252685701475 } },{ { 0, 31.740361941314 }, 19972325.3556069, 143.930820896999, - { 179.553485210731879874, -31.909206787477701871, 36.145242998351638503, 54883.4113710054145, -1.003794616281159395249425 } + { 179.553485210731879874, -31.909206787477701871, 36.145242998351638503, 54883.4113710054145, -1.00379461628115951299378139083273709 } },{ { 0, .05479250563 }, 19858049.4780499, 41.349430623518, - { 178.822647462220726609, .836079031223269324, 138.645259065012502544, 169078.442370111714, -0.9997793696948588326408637 } + { 178.822647462220726609, .836079031223269324, 138.645259065012502544, 169078.442370111714, -0.9997793696948588104689292777038645 } },{ { 0, 36.685139871608 }, 19968965.6773632, 89.167975517493, - { 179.366667224014334712, -36.6833040833258687, 90.921025521408327068, 13327.2156799476918, -0.9999165379463486296850866 } + { 179.366667224014334712, -36.6833040833258687, 90.921025521408327068, 13327.2156799476918, -0.999916537946348604748436628142371774 } },{ { 0, 3.451199399671 }, 19938203.3838544, 91.541212417048, - { 179.107509334399258305, -3.459003521120242021, 88.476282464773035164, 32316.1747698810781, -1.000003974843958109899184 } + { 179.107509334399258305, -3.459003521120242021, 88.476282464773035164, 32316.1747698810781, -1.00000397484395819880376166111091152 } },{ { 0, 27.692898794247 }, 19883493.6699045, 88.406440883665, - { 178.512356615673144314, -27.666009301228316555, 92.036345087713397961, 94128.7880896190836, -0.9997364583229516115064732 } + { 178.512356615673144314, -27.666009301228316555, 92.036345087713397961, 94128.7880896190836, -0.999736458322951659916100197733612731 } },{ { 0, 17.363238291869 }, 19980749.7638027, 39.697196316589, - { 179.567921315455829491, -17.288872648596950413, 140.321938237586060826, 46975.9359427664379, -0.9976876919817150126995782 } + { 179.567921315455829491, -17.288872648596950413, 140.321938237586060826, 46975.9359427664379, -0.997687691981715030209443284547887743 } },{ { 0, 37.006775102539 }, 19949309.9180043, 116.455543532607, - { 179.191103068859169842, -37.156365616364686838, 63.771817992036617793, 45856.1961421018701, -1.002219628589184219390543 } + { 179.191103068859169842, -37.156365616364686838, 63.771817992036617793, 45856.1961421018701, -1.00221962858918423044940482213860378 } },{ { 0, 45.572883540957 }, 19940027.8586414, 137.627256708444, - { 179.224707765088686272, -45.94675931323086696, 42.723991162977357301, 74208.4359612889496, -1.003808877864471522261582 } + { 179.224707765088686272, -45.94675931323086696, 42.723991162977357301, 74208.4359612889496, -1.00380887786447159371050474874209613 } },{ { 0, 43.63393981955 }, 19931045.2914508, 91.203625101465, - { 178.878236417027994157, -43.642335115130514773, 89.268780774643462256, 55253.5406349861764, -1.000029741531505212250378 } + { 178.878236417027994157, -43.642335115130514773, 89.268780774643462256, 55253.5406349861764, -1.00002974153150514524668324156664312 } },{ { 0, 38.4995307019 }, 19918391.2222193, 141.232864609445, - { 179.143856004445269342, -39.042223438550921467, 39.117947060740562295, 102217.2563106863077, -1.003881641157329480734325 } + { 179.143856004445269342, -39.042223438550921467, 39.117947060740562295, 102217.2563106863077, -1.00388164115732947401227193040540442 } },{ { 0, 27.55015339382 }, 19986004.7358853, 137.025135713548, - { 179.596220103573824099, -27.587412128122249651, 42.992898351962011956, 33938.7346646670654, -1.003160443902811658199205 } + { 179.596220103573824099, -27.587412128122249651, 42.992898351962011956, 33938.7346646670654, -1.00316044390281167153489150223322213 } },{ { 0, 1.54507498314 }, 19978593.3191777, 36.816106412092, - { 179.567115633151308577, -1.448861185025252004, 143.185763012309022403, 56320.5800276739168, -0.9997704994624671810221454 } + { 179.567115633151308577, -1.448861185025252004, 143.185763012309022403, 56320.5800276739168, -0.999770499462467210349814195069484413 } },{ { 0, 45.217063644222 }, 19987042.0782465, 18.114645812265, - { 179.807382581661125, -45.086424050571516283, 161.928120141429818658, 45544.2915061261936, -0.9949741794148549555321798 } + { 179.807382581661125, -45.086424050571516283, 161.928120141429818658, 45544.2915061261936, -0.994974179414854997816064496873877943 } },{ { 0, 13.473522450751 }, 19987364.078382, 156.839609002403, - { 179.726941062277208626, -13.570372758027936877, 23.170293747820406391, 65329.9068132034472, -1.002190931895065541886065 } + { 179.726941062277208626, -13.570372758027936877, 23.170293747820406391, 65329.9068132034472, -1.00219093189506569530067281448282301 } },{ { 0, 6.287741997374 }, 19912159.8245954, 132.954797451112, - { 179.071252372259552052, -6.743450924917895817, 47.100789519677419746, 104772.4027498097375, -1.00071252411103014544249 } + { 179.071252372259552052, -6.743450924917895817, 47.100789519677419746, 104772.4027498097375, -1.00071252411103017720961361192166805 } },{ { 0, 7.639709001531 }, 19976374.3699535, 29.731916588299, - { 179.616156296978583335, -7.48702643786017917, 150.279582966919438164, 69224.6591757209539, -0.9987897920867413009931961 } + { 179.616156296978583335, -7.48702643786017917, 150.279582966919438164, 69224.6591757209539, -0.998789792086741234911073661351110786 } },{ { 0, 5.893688050348 }, 19886907.2520668, 14.653438882877, - { 179.586212000450856399, -4.888408917114795625, 165.371181401863458848, 177183.5330818593022, -0.9987946470311208020708207 } + { 179.586212000450856399, -4.888408917114795625, 165.371181401863458848, 177183.5330818593022, -0.998794647031120752522781458537792787 } },{ { 0, 61.997076235476 }, 19976288.2901729, 149.562797049254, - { 179.605779116829636081, -62.19593758437129915, 30.65850204223272625, 36696.2853801462176, -1.003730714324371446686916 } + { 179.605779116829636081, -62.19593758437129915, 30.65850204223272625, 36696.2853801462176, -1.00373071432437144245852778112748638 } },{ { 0, 50.507637741656 }, 19979542.5263293, 171.564028344478, - { 179.893569206021038536, -50.721890799900161112, 8.4746613464253591, 50644.5234828162697, -1.005088816322817598953449 } + { 179.893569206021038536, -50.721890799900161112, 8.4746613464253591, 50644.5234828162697, -1.00508881632281776852266830246662721 } },{ { 0, 7.484475238477 }, 19867425.2906303, 57.020570370985, - { 178.638400003000590878, -6.926155588124333461, 123.087267812322270238, 132929.2775641349633, -0.9990970426773380551267907 } + { 178.638400003000590878, -6.926155588124333461, 123.087267812322270238, 132929.2775641349633, -0.999097042677338120775232255255104974 } },{ { 0, 56.851165323215 }, 19988235.9960515, 112.345749045605, - { 179.587046628550073045, -56.875248360744638525, 67.744017057185404441, 9971.0934553515518, -1.001828592498714131384455 } + { 179.587046628550073045, -56.875248360744638525, 67.744017057185404441, 9971.0934553515518, -1.00182859249871403228837607457535341 } },{ { 0, 10.692273150738 }, 19893210.3050033, 102.824601316946, - { 178.709520715733071393, -10.851727623036704339, 77.308514969817191459, 83032.7122948051111, -1.000343455845084243900113 } + { 178.709520715733071393, -10.851727623036704339, 77.308514969817191459, 83032.7122948051111, -1.00034345584508432835946223349310458 } },{ { 0, 46.694739303788 }, 19975447.9283188, 174.663684259477, - { 179.926838145841924189, -46.948618153686522669, 5.361568174833475454, 59614.5876209460645, -1.005204848752017347248908 } + { 179.926838145841924189, -46.948618153686522669, 5.361568174833475454, 59614.5876209460645, -1.00520484875201732144489596976200119 } },{ { 0, 15.804386137005 }, 19855850.8800526, 74.932089158884, - { 178.367587635209819128, -15.522042847777054984, 105.357235560913450667, 123350.4326645237628, -0.9990915785464752706503469 } + { 178.367587635209819128, -15.522042847777054984, 105.357235560913450667, 123350.4326645237628, -0.999091578546475345135036150168161839 } },{ { 0, 4.371450175299 }, 19979071.1035552, 164.163592252794, - { 179.780887420199549421, -4.566109732313098407, 15.840695025950408814, 84137.2115482558728, -1.00076323969894748092211 } + { 179.780887420199549421, -4.566109732313098407, 15.840695025950408814, 84137.2115482558728, -1.00076323969894742660358133434783667 } },{ { 0, 30.894388279688 }, 19968681.8321577, 77.35154610481, - { 179.375426183521944524, -30.871308884744172663, 102.709506078439532936, 14048.0277985734058, -0.9989751763364228440383701 } + { 179.375426183521944524, -30.871308884744172663, 102.709506078439532936, 14048.0277985734058, -0.998975176336422854284080585784977302 } },{ { 0, 9.541166838639 }, 19848553.7844137, 118.441353539081, - { 178.432934555386452839, -10.09982228112793472, 61.736686215549403663, 144831.1911566651614, -1.000605486201104942726309 } + { 178.432934555386452839, -10.09982228112793472, 61.736686215549403663, 144831.1911566651614, -1.00060548620110489892454097571317106 } },{ { 0, 8.489292700054 }, 19995477.1669578, 171.963952699866, - { 179.906698338023119097, -8.559237750032113623, 8.037517851139094467, 72192.60793572974, -1.001520684863064588341133 } + { 179.906698338023119097, -8.559237750032113623, 8.037517851139094467, 72192.60793572974, -1.00152068486306466965629624610301107 } },{ { 0, 19.562401114224 }, 19893208.1788508, 126.362762598128, - { 178.838724116996037606, -20.05038360490599475, 53.875560227496658204, 112181.7524188837615, -1.001852026688027773315692 } + { 178.838724116996037606, -20.05038360490599475, 53.875560227496658204, 112181.7524188837615, -1.00185202668802775249901060306001455 } },{ { 0, 42.260350252749 }, 19942715.0054774, 170.703419847646, - { 179.807860448877064601, -42.79985897702184353, 9.377654670896439828, 96336.3477142010769, -1.005086424064435460636394 } + { 179.807860448877064601, -42.79985897702184353, 9.377654670896439828, 96336.3477142010769, -1.00508642406443549077721399953588843 } },{ { 0, 24.511403144656 }, 19924809.5184876, 102.913211410163, - { 178.957598444862223515, -24.616808725039883945, 77.297538210434837096, 55403.453072179318, -1.00084083091888388877648 } + { 178.957598444862223515, -24.616808725039883945, 77.297538210434837096, 55403.453072179318, -1.0008408309188838725134473861544393 } },{ { 0, 20.844284170708 }, 19909084.6340808, 44.172784008084, - { 179.069258863637226633, -20.321320573298341477, 136.01627115731728436, 111009.0987238994608, -0.997389183621779017239594 } + { 179.069258863637226633, -20.321320573298341477, 136.01627115731728436, 111009.0987238994608, -0.997389183621778974142557672166731209 } },{ { 0, 2.426010809098 }, 19840940.6924189, 94.315194952561, - { 178.236397468862000784, -2.513715200833756776, 85.734896842737189557, 130002.6104886615638, -0.9998252498449916409405634 } + { 178.236397468862000784, -2.513715200833756776, 85.734896842737189557, 130002.6104886615638, -0.999825249844991659209370027383556589 } },{ { 0, 6.600682554664 }, 19878412.28273, 168.167678684515, - { 179.646475458013797028, -7.699164822656561787, 11.861035812918738552, 187426.3958525886692, -1.000982848560649784010017 } + { 179.646475458013797028, -7.699164822656561787, 11.861035812918738552, 187426.3958525886692, -1.00098284856064978498579876031726599 } },{ { 0, 23.372339802326 }, 19899498.4582543, 161.197647943542, - { 179.499422665106094027, -24.239465200482591299, 18.932355367478826536, 151863.2545535951091, -1.003476668684313999812749 } + { 179.499422665106094027, -24.239465200482591299, 18.932355367478826536, 151863.2545535951091, -1.00347666868431395492677893344080076 } },{ { 0, 16.194668264095 }, 19874825.6683239, 148.942349959054, - { 179.115193814080201851, -17.129419031459576897, 31.225656401221968078, 166033.3161394594622, -1.002220322222336505702499 } + { 179.115193814080201851, -17.129419031459576897, 31.225656401221968078, 166033.3161394594622, -1.00222032222233647935638600756647065 } },{ { 0, 1.528726471528 }, 19897803.9939987, 69.212891442493, - { 178.791047180477802091, -1.282203000582034597, 110.802928803578167132, 85252.8333849204133, -0.9998271442281568740497941 } + { 178.791047180477802091, -1.282203000582034597, 110.802928803578167132, 85252.8333849204133, -0.999827144228156883265512533398577943 } },{ { 0, 6.297249676078 }, 19864042.0495193, 56.274639904925, - { 178.623258703845895437, -5.709470001196540278, 123.817184177744186806, 137475.1283083659258, -0.9991904501783995893996783 } + { 178.623258703845895437, -5.709470001196540278, 123.817184177744186806, 137475.1283083659258, -0.999190450178399580671850799262756482 } },{ { 0, 17.393540327984 }, 19962624.6302607, 107.855062015266, - { 179.330156510680163326, -17.431100690958209424, 72.181322855288535245, 19320.5501845044839, -1.000918417796891303852592 } + { 179.330156510680163326, -17.431100690958209424, 72.181322855288535245, 19320.5501845044839, -1.00091841779689127989172447996679693 } },{ { 0, 46.284685151236 }, 19990422.3478916, 14.758013867151, - { 179.852534804091121255, -46.176234945675219984, 165.271681964991897184, 42614.1796365710104, -0.9948945922618399753472283 } + { 179.852534804091121255, -46.176234945675219984, 165.271681964991897184, 42614.1796365710104, -0.994894592261839960656288894824683666 } },{ { 0, 14.924320176299 }, 19891861.8615337, 31.446544793174, - { 179.195663739713760883, -14.125476432252858442, 148.678916887199611191, 149419.6596309045804, -0.9976201425853329563713315 } + { 179.195663739713760883, -14.125476432252858442, 148.678916887199611191, 149419.6596309045804, -0.997620142585332936313591289945179597 } },{ { 0, 23.668824656069 }, 19938736.4442268, 148.091483667618, - { 179.409875478773990359, -24.107855233601412399, 32.02919257641173958, 97771.7687385830819, -1.003232628720005910772511 } + { 179.409875478773990359, -24.107855233601412399, 32.02919257641173958, 97771.7687385830819, -1.00323262872000595891108787327539176 } },{ { 0, 46.986276695896 }, 19968596.0414782, 174.796708941456, - { 179.92040916864362177, -47.301644191214905832, 5.234240076649939638, 66113.7417494369769, -1.005190954526080850226118 } + { 179.92040916864362177, -47.301644191214905832, 5.234240076649939638, 66113.7417494369769, -1.00519095452608087093437916337279603 } },{ { 0, 65.946144289524 }, 19993734.5109736, 25.375428509648, - { 179.808282612725835525, -65.871840130833632868, 154.703163938350061652, 18355.2254271672769, -0.9964369359146106126432461 } + { 179.808282612725835525, -65.871840130833632868, 154.703163938350061652, 18355.2254271672769, -0.996436935914610577569305860379245132 } },{ { 0, 10.950298933293 }, 19975919.5586889, 28.779018914489, - { 179.624609619829763098, -10.787771536605316781, 151.238005588662201946, 70291.1998404303581, -0.9982720718341152112444356 } + { 179.624609619829763098, -10.787771536605316781, 151.238005588662201946, 70291.1998404303581, -0.998272071834115148902810688014142215 } },{ { 0, 13.609869340778 }, 19913213.8514358, 129.616021271129, - { 179.035623147420893383, -14.023624108675206222, 50.506400999466711623, 97596.7664002074776, -1.00146664642314031927646 } + { 179.035623147420893383, -14.023624108675206222, 50.506400999466711623, 97596.7664002074776, -1.00146664642314031645753402699483559 } },{ { 0, 48.701427557433 }, 19972955.2699173, 102.875149183407, - { 179.385565054218238481, -48.735316652259656533, 77.294384444682547869, 18461.7742226227697, -1.001146768554290695098057 } + { 179.385565054218238481, -48.735316652259656533, 77.294384444682547869, 18461.7742226227697, -1.00114676855429074464609584538266063 } },{ { 0, 31.519172055785 }, 19952318.3772514, 26.247105619999, - { 179.555251675378549409, -31.140142027808697534, 153.865822276646938125, 86354.7117605101002, -0.9957399483998249749283627 } + { 179.555251675378549409, -31.140142027808697534, 153.865822276646938125, 86354.7117605101002, -0.995739948399825047786748655198607594 } },{ { 0, 31.863784754278 }, 19993324.8682601, 29.572313410211, - { 179.722489476483407524, -31.826935359797657785, 150.440607907359037187, 41427.6181613499234, -0.9958880090011472640794746 } + { 179.722489476483407524, -31.826935359797657785, 150.440607907359037187, 41427.6181613499234, -0.995888009001147267440501309465616941 } },{ { 0, 76.434608546092 }, 19997750.023578, 167.428385412814, - { 179.918287057674124459, -76.48787937532808951, 12.621032110142724567, 9619.5267710862108, -1.002339638930915896456245 } + { 179.918287057674124459, -76.48787937532808951, 12.621032110142724567, 9619.5267710862108, -1.00233963893091582164629471662919968 } },{ { 0, 73.114273316483 }, 19992866.6147806, 78.154765899661, - { 179.576736605988553624, -73.098788070892914568, 102.085693546950923465, 8580.6475692800946, -0.9993841433084754598747609 } + { 179.576736605988553624, -73.098788070892914568, 102.085693546950923465, 8580.6475692800946, -0.999384143308475469957841141876997426 } },{ { 0, 1.125639056292 }, 19852573.5442848, 67.184842289382, - { 178.426819580880619395, -.694775021853292564, 112.831314850896246589, 132932.8743502563937, -0.9997329579628334908763393 } + { 178.426819580880619395, -.694775021853292564, 112.831314850896246589, 132932.8743502563937, -0.999732957962833457266071945923613384 } } };