[geographiclib] 01/08: New upstream version 1.49

Bas Couwenberg sebastic at debian.org
Thu Oct 5 12:29:37 UTC 2017


This is an automated email from the git hooks/post-receive script.

sebastic pushed a commit to branch master
in repository geographiclib.

commit 6e3ada19503a964ced2dceff5f1617c148dac53c
Author: Bas Couwenberg <sebastic at xs4all.nl>
Date:   Thu Oct 5 14:00:59 2017 +0200

    New upstream version 1.49
---
 CMakeLists.txt                                     |    53 +-
 NEWS                                               |    37 +-
 cmake/FindGeographicLib.cmake                      |     3 +-
 configure                                          |    39 +-
 configure.ac                                       |    18 +-
 doc/CMakeLists.txt                                 |     3 +-
 doc/GeographicLib.dox.in                           |   193 +-
 doc/NETGeographicLib.dox                           |     8 +-
 doc/doxyfile-c.in                                  |     2 +-
 doc/doxyfile-for.in                                |     2 +-
 doc/doxyfile-net.in                                |     2 +-
 doc/doxyfile.in                                    |     2 +-
 doc/geodesic-c.dox                                 |    45 +-
 doc/geodesic-for.dox                               |    14 +-
 doc/geodseries30.html                              |     6 +-
 dotnet/examples/CS/example-AlbersEqualArea.cs      |     2 +-
 .../ManagedCPP/example-AlbersEqualArea.cpp         |     2 +-
 dotnet/examples/VB/example-AlbersEqualArea.vb      |     2 +-
 examples/CMakeLists.txt                            |     3 +-
 examples/JacobiConformal.cpp                       |     1 +
 examples/example-AlbersEqualArea.cpp               |     2 +-
 examples/example-DMS.cpp                           |     1 +
 examples/example-EllipticFunction.cpp              |     3 +-
 examples/example-GeoCoords.cpp                     |     1 -
 examples/example-GeodesicLine.cpp                  |     2 +-
 examples/example-GeodesicLineExact.cpp             |     2 +-
 examples/example-NearestNeighbor.cpp               |   163 +-
 examples/example-PolarStereographic.cpp            |     3 +-
 examples/example-RhumbLine.cpp                     |     2 +-
 examples/example-TransverseMercator.cpp            |    51 +-
 examples/example-TransverseMercatorExact.cpp       |     3 +-
 examples/example-UTMUPS.cpp                        |     2 +-
 include/GeographicLib/Accumulator.hpp              |     8 +-
 include/GeographicLib/AlbersEqualArea.hpp          |    14 +-
 include/GeographicLib/Config.h                     |     4 +-
 include/GeographicLib/Constants.hpp                |    82 +-
 include/GeographicLib/DMS.hpp                      |    12 +-
 include/GeographicLib/Ellipsoid.hpp                |     8 +-
 include/GeographicLib/EllipticFunction.hpp         |    12 +-
 include/GeographicLib/GARS.hpp                     |     8 +-
 include/GeographicLib/GeoCoords.hpp                |     6 +-
 include/GeographicLib/Geodesic.hpp                 |     3 +-
 include/GeographicLib/GeodesicExact.hpp            |    17 +-
 include/GeographicLib/GeodesicLineExact.hpp        |     4 +-
 include/GeographicLib/Geohash.hpp                  |    14 +-
 include/GeographicLib/Geoid.hpp                    |    12 +-
 include/GeographicLib/Georef.hpp                   |    15 +-
 include/GeographicLib/Gnomonic.hpp                 |     3 +-
 include/GeographicLib/GravityModel.hpp             |     2 +-
 include/GeographicLib/LambertConformalConic.hpp    |    36 +-
 include/GeographicLib/MGRS.hpp                     |    18 +-
 include/GeographicLib/MagneticCircle.hpp           |     6 +-
 include/GeographicLib/MagneticModel.hpp            |    30 +-
 include/GeographicLib/Math.hpp                     |   111 +-
 include/GeographicLib/NearestNeighbor.hpp          |   103 +-
 include/GeographicLib/OSGB.hpp                     |    10 +-
 include/GeographicLib/PolarStereographic.hpp       |     4 +
 include/GeographicLib/PolygonArea.hpp              |     4 +-
 include/GeographicLib/Rhumb.hpp                    |    47 +-
 include/GeographicLib/SphericalEngine.hpp          |    55 +-
 include/GeographicLib/SphericalHarmonic2.hpp       |     9 +-
 include/GeographicLib/TransverseMercator.hpp       |     4 +
 include/GeographicLib/TransverseMercatorExact.hpp  |     4 +
 include/GeographicLib/UTMUPS.hpp                   |     3 +-
 include/GeographicLib/Utility.hpp                  |    37 +-
 java/direct/pom.xml                                |     4 +-
 java/inverse/pom.xml                               |     4 +-
 java/planimeter/pom.xml                            |     4 +-
 java/pom.xml                                       |     2 +-
 .../java/net/sf/geographiclib/Accumulator.java     |     4 +-
 .../main/java/net/sf/geographiclib/Geodesic.java   |    15 +-
 .../java/net/sf/geographiclib/GeodesicLine.java    |     3 +-
 .../main/java/net/sf/geographiclib/Gnomonic.java   |     8 +-
 .../java/net/sf/geographiclib/PolygonArea.java     |     6 +-
 .../java/net/sf/geographiclib/package-info.java    |    35 +-
 .../java/net/sf/geographiclib/GeodesicTest.java    |    24 +-
 js/GeographicLib.md                                |     5 +-
 js/README.md                                       |     2 +-
 js/doc/3-examples.md                               |     6 +-
 js/package.json                                    |     2 +-
 js/samples/geod-calc.html                          |   420 +-
 js/samples/geod-google-instructions.html           |   112 +-
 js/samples/geod-google.html                        |   108 +-
 js/src/DMS.js                                      |    11 +-
 js/src/Geodesic.js                                 |    10 +-
 js/src/GeodesicLine.js                             |     9 +-
 js/src/Math.js                                     |     6 +-
 js/test/geodesictest.js                            |    20 +
 legacy/C/CMakeLists.txt                            |    33 +-
 legacy/C/geodesic.c                                |    42 +-
 legacy/C/geodesic.h                                |    24 +-
 legacy/C/geodtest.c                                |    42 +-
 legacy/Fortran/CMakeLists.txt                      |    17 +-
 legacy/Fortran/geodesic.for                        |    54 +-
 legacy/Fortran/geodtest.for                        |    56 +-
 man/CMakeLists.txt                                 |     9 +-
 man/CartConvert.1                                  |     2 +-
 man/CartConvert.usage                              |     2 +-
 man/ConicProj.1                                    |     6 +-
 man/ConicProj.pod                                  |     4 +-
 man/ConicProj.usage                                |     2 +-
 man/GeoConvert.1                                   |     2 +-
 man/GeoConvert.usage                               |     2 +-
 man/GeodSolve.1                                    |     2 +-
 man/GeodSolve.usage                                |     2 +-
 man/GeodesicProj.1                                 |     6 +-
 man/GeodesicProj.pod                               |     4 +-
 man/GeodesicProj.usage                             |     2 +-
 man/GeoidEval.1                                    |     6 +-
 man/GeoidEval.pod                                  |     4 +-
 man/GeoidEval.usage                                |     2 +-
 man/Gravity.1                                      |     2 +-
 man/Gravity.usage                                  |     2 +-
 man/MagneticField.1                                |    19 +-
 man/MagneticField.1.html                           |    17 +-
 man/MagneticField.pod                              |    17 +-
 man/MagneticField.usage                            |    19 +-
 man/Makefile.am                                    |     4 +-
 man/Makefile.in                                    |     5 +-
 man/Planimeter.1                                   |     2 +-
 man/Planimeter.usage                               |     2 +-
 man/RhumbSolve.1                                   |     6 +-
 man/RhumbSolve.pod                                 |     4 +-
 man/RhumbSolve.usage                               |     2 +-
 man/TransverseMercatorProj.1                       |    10 +-
 man/TransverseMercatorProj.1.html                  |     2 +-
 man/TransverseMercatorProj.pod                     |     8 +-
 man/TransverseMercatorProj.usage                   |     6 +-
 matlab/geographiclib/Contents.m                    |     2 +-
 matlab/geographiclib/cassini_fwd.m                 |     3 +-
 matlab/geographiclib/cassini_inv.m                 |     2 +-
 matlab/geographiclib/eqdazim_fwd.m                 |     9 +-
 matlab/geographiclib/eqdazim_inv.m                 |    11 +-
 matlab/geographiclib/gedistance.m                  |     3 +-
 matlab/geographiclib/geocent_fwd.m                 |     2 +-
 matlab/geographiclib/geocent_inv.m                 |     2 +-
 matlab/geographiclib/geodarea.m                    |     2 +-
 matlab/geographiclib/geoddistance.m                |     5 +-
 matlab/geographiclib/geodreckon.m                  |     2 +-
 matlab/geographiclib/geographiclib_test.m          |   130 +-
 matlab/geographiclib/gereckon.m                    |     3 +-
 matlab/geographiclib/gnomonic_fwd.m                |     3 +-
 matlab/geographiclib/gnomonic_inv.m                |     2 +-
 matlab/geographiclib/loccart_fwd.m                 |     2 +-
 matlab/geographiclib/loccart_inv.m                 |     2 +-
 matlab/geographiclib/polarst_fwd.m                 |     2 +-
 matlab/geographiclib/polarst_inv.m                 |     2 +-
 matlab/geographiclib/projdoc.m                     |     4 +-
 matlab/geographiclib/tranmerc_fwd.m                |    42 +-
 matlab/geographiclib/tranmerc_inv.m                |    42 +-
 maxima/auxlat.mac                                  |    29 +-
 maxima/geod.mac                                    |     4 +-
 maxima/geodesic.mac                                |     2 +-
 maxima/polyprint.mac                               |    37 +-
 python/README.rst                                  |     2 +-
 python/doc/index.rst                               |     8 +-
 python/geographiclib/__init__.py                   |     4 +-
 python/geographiclib/geodesic.py                   |    18 +-
 python/geographiclib/test/test_geodesic.py         |    16 +
 python/setup.py                                    |     2 +-
 src/AlbersEqualArea.cpp                            |    26 +-
 src/AzimuthalEquidistant.cpp                       |     8 +-
 src/CircularEngine.cpp                             |    20 +-
 src/DMS.cpp                                        |    26 +-
 src/Ellipsoid.cpp                                  |     3 +-
 src/EllipticFunction.cpp                           |    93 +-
 src/GARS.cpp                                       |     8 +-
 src/GeoCoords.cpp                                  |    11 +-
 src/Geocentric.cpp                                 |    12 +-
 src/Geodesic.cpp                                   |    28 +-
 src/GeodesicExact.cpp                              |    12 +-
 src/GeodesicExactC4.cpp                            | 10207 +++++++++----------
 src/GeodesicLine.cpp                               |     6 +-
 src/GeodesicLineExact.cpp                          |     6 +-
 src/Geohash.cpp                                    |    10 +-
 src/Geoid.cpp                                      |     4 +-
 src/Georef.cpp                                     |    19 +-
 src/Gnomonic.cpp                                   |     6 +-
 src/GravityCircle.cpp                              |    10 +-
 src/GravityModel.cpp                               |    13 +-
 src/LambertConformalConic.cpp                      |    23 +-
 src/MGRS.cpp                                       |    44 +-
 src/MagneticModel.cpp                              |    12 +-
 src/NormalGravity.cpp                              |    36 +-
 src/OSGB.cpp                                       |    11 +-
 src/PolarStereographic.cpp                         |    15 +-
 src/PolygonArea.cpp                                |    12 +-
 src/Rhumb.cpp                                      |    15 +-
 src/SphericalEngine.cpp                            |    83 +-
 src/TransverseMercator.cpp                         |   161 +-
 src/TransverseMercatorExact.cpp                    |    29 +-
 src/UTMUPS.cpp                                     |    27 +-
 tools/GeoidEval.cpp                                |    16 +-
 tools/Gravity.cpp                                  |     8 +-
 tools/Makefile.mk                                  |    15 +-
 tools/geographiclib-get-magnetic.sh                |     6 +-
 tools/tests.cmake                                  |    86 +-
 wrapper/js/00README.txt                            |    11 +
 wrapper/matlab/geographiclibinterface.m            |     4 +-
 199 files changed, 7201 insertions(+), 6989 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 5aabbfb..4c26560 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -2,7 +2,7 @@ project (GeographicLib)
 
 # Version information
 set (PROJECT_VERSION_MAJOR 1)
-set (PROJECT_VERSION_MINOR 48)
+set (PROJECT_VERSION_MINOR 49)
 set (PROJECT_VERSION_PATCH 0)
 set (PROJECT_VERSION "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}")
 if (PROJECT_VERSION_PATCH GREATER 0)
@@ -43,7 +43,7 @@ endif ()
 # The library version tracks the numbering given by libtool in the
 # autoconf set up.
 set (LIBVERSION_API 17)
-set (LIBVERSION_BUILD 17.1.1)
+set (LIBVERSION_BUILD 17.1.2)
 string (TOLOWER ${PROJECT_NAME} PROJECT_NAME_LOWER)
 string (TOUPPER ${PROJECT_NAME} PROJECT_NAME_UPPER)
 
@@ -61,7 +61,8 @@ cmake_minimum_required (VERSION 2.8.4) # This version was released 2011-02-16
 # CMAKE_INSTALL_PREFIX being used when it's ON.
 
 if (WIN32)
-  option (COMMON_INSTALL_PATH "Use a common installation path for packages" OFF)
+  option (COMMON_INSTALL_PATH "Use a common installation path for packages"
+    OFF)
 else ()
   option (COMMON_INSTALL_PATH "Use a common installation path for packages" ON)
 endif ()
@@ -172,6 +173,10 @@ option (USE_BOOST_FOR_EXAMPLES
 option (APPLE_MULTIPLE_ARCHITECTURES
   "Build multiple architectures for Apple systems" OFF)
 
+# (11) Convert warnings into errors?  Default is OFF.  If the tests
+# directory is present you get this behavior regardless.
+option (CONVERT_WARNINGS_TO_ERRORS "Convert warnings into errors?" OFF)
+
 set (LIBNAME Geographic)
 if (MSVC OR CMAKE_CONFIGURATION_TYPES)
   # For multi-config systems and for Visual Studio, the debug version of
@@ -179,6 +184,12 @@ if (MSVC OR CMAKE_CONFIGURATION_TYPES)
   set (CMAKE_DEBUG_POSTFIX _d)
 endif ()
 
+if (EXISTS ${PROJECT_SOURCE_DIR}/tests/CMakeLists.txt)
+  set (DEVELOPER ON)
+else ()
+  set (DEVELOPER OFF)
+endif ()
+
 if (NOT MSVC)
   # Set the run time path for shared libraries for non-Windows machines.
   # (1) include link path for external packages (not needed with
@@ -210,20 +221,28 @@ include (TestBigEndian)
 test_big_endian (GEOGRAPHICLIB_WORDS_BIGENDIAN)
 
 # Make the compiler more picky.
+include (CheckCXXCompilerFlag)
 if (MSVC)
   string (REGEX REPLACE "/W[0-4]" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
   # Turn on parallel builds for Visual Studio
   set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W4 /MP")
 else ()
-  set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra")
+  set (FLOAT_CONVERSION_FLAG "-Wfloat-conversion")
+  check_cxx_compiler_flag (${FLOAT_CONVERSION_FLAG} FLOAT_CONVERSION)
+  if (NOT FLOAT_CONVERSION)
+    set (FLOAT_CONVERSION_FLAG)
+  endif ()
+  set (CMAKE_CXX_FLAGS
+    "${CMAKE_CXX_FLAGS} -Wall -Wextra ${FLOAT_CONVERSION_FLAG}")
   # g++ 6.0 defaults to -std=gnu++14
   if (NOT (CMAKE_CXX_COMPILER_ID STREQUAL GNU AND
-        NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 6.0))
+        NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 6.0) OR
+      # but Boost 1.60 quadmath needs c++14 and not gnu++14
+      GEOGRAPHICLIB_PRECISION EQUAL 4)
     # check for C++11 support.  This flag is *not* propagated to clients
     # that use GeographicLib.  However, this is of no consequence.  When
     # the client code is being compiled (and the GeographicLib headers
     # being included), work-alike substitutions are used.
-    include (CheckCXXCompilerFlag)
     # The only "deprecated" flag included here is "0x" to activate C++11
     # with old versions of g++.  We'll add "17" when it's available.
     # Note: C++11 (actually gnu++14) support is turned on by default in
@@ -242,9 +261,23 @@ else ()
     endif ()
   endif ()
 endif ()
+if (DEVELOPER OR CONVERT_WARNINGS_TO_ERRORS)
+  if (MSVC)
+    set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /WX")
+    set (CMAKE_STATIC_LINKER_FLAGS "${CMAKE_STATIC_LINKER_FLAGS} /WX")
+    set (CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /WX")
+    set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /WX")
+  else ()
+    set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror")
+  endif ()
+endif ()
 
 include (CheckCXXSourceCompiles)
-set (CMAKE_REQUIRED_FLAGS "${CMAKE_CXX_FLAGS}")
+if (MSVC)
+  set (CMAKE_REQUIRED_FLAGS "${CMAKE_CXX_FLAGS} /WX")
+else ()
+  set (CMAKE_REQUIRED_FLAGS "${CMAKE_CXX_FLAGS} -Werror")
+endif ()
 # Check whether the C++11 math function: std::expm1, std::atanh,
 # etc. are available.  This flag is *not* propagated to clients that use
 # GeographicLib.  However, this is of no consequence.  When the client
@@ -453,8 +486,8 @@ endif ()
 set (TOOLS CartConvert ConicProj GeodesicProj GeoConvert GeodSolve
   GeoidEval Gravity MagneticField Planimeter RhumbSolve TransverseMercatorProj)
 # The list of scripts (to be installed into, e.g., /usr/local/sbin)
-set (SCRIPTS
-  geographiclib-get-geoids geographiclib-get-gravity geographiclib-get-magnetic)
+set (SCRIPTS geographiclib-get-geoids geographiclib-get-gravity
+  geographiclib-get-magnetic)
 
 set_property (GLOBAL PROPERTY USE_FOLDERS ON)
 
@@ -479,7 +512,7 @@ if (MSVC AND BUILD_NETGEOGRAPHICLIB)
   endif ()
 endif ()
 add_subdirectory (cmake)
-if (EXISTS ${PROJECT_SOURCE_DIR}/tests/CMakeLists.txt)
+if (DEVELOPER)
   add_subdirectory (tests)
 endif ()
 
diff --git a/NEWS b/NEWS
index c078d70..b1076d6 100644
--- a/NEWS
+++ b/NEWS
@@ -4,7 +4,37 @@ For more information, see
 
     https://geographiclib.sourceforge.io/
 
-The current version of the library is 1.48.
+The current version of the library is 1.49.
+
+Changes between 1.49 (released 2017-10-05) and 1.48 versions:
+
+  * Add the Enhanced Magnetic Model 2017, emm2017. This is valid for
+    2000 thru the end of 2021.
+
+  * Avoid potential problems with the order of initializations in DMS,
+    GARS, Geohash, Georef, MGRS, OSGB, SphericalEngine; this only would
+    have been an issue if GeographicLib objects were instantiated
+    globally. Now no GeographicLib initialization code should be run
+    prior to the entry of main().
+
+  * To support the previous fix, add an overload, Utility::lookup(const
+    char* s, char c).
+
+  * NearestNeighbor::Search throws an error if pts is the wrong size
+    (instead of merely returning no results).
+
+  * Use complex arithmetic for Clenshaw sums in TransverseMercator and
+    tranmerc_{fwd,inv}.m.
+
+  * Changes in cmake support:
+    + fix compiler flags for GEOGRAPHICLIB_PRECISION = 4;
+    + add CONVERT_WARNINGS_TO_ERRORS option (default OFF), if ON then
+      compiler warnings are treated as errors.
+
+  * Fix warnings about implicit conversions of doubles to bools in C++,
+    C, and JavaScript packages.
+
+  * Binary installers for Windows now use Visual Studio 14 2015.
 
 Changes between 1.48 (released 2017-04-09) and 1.47 versions:
 
@@ -909,7 +939,7 @@ Changes between 1.25 (released 2012-10-16) and 1.24 versions:
     + Geodesic::Inverse now converges for any value of f;
     + add GeodesicExact and GeodesicLineExact which are formulated in
       terms of elliptic integrals and thus yield accurate results
-      even for very eccentric ellipsoids.
+      even for very eccentric ellipsoids;
     + the -E option to Geod invokes these exact classes.
 
   * Add functionality to EllipticFunction:
@@ -1015,7 +1045,8 @@ Changes between 1.21 (released 2012-04-25) and 1.20 versions:
 
   * cmake tweaks:
     + simplify the configuration of doxygen;
-    + allow the Matlab compiler to be specified with the MATLAB_COMPILER option.
+    + allow the Matlab compiler to be specified with the MATLAB_COMPILER
+      option.
 
 Changes between 1.20 (released 2012-03-23) and 1.19 versions:
 
diff --git a/cmake/FindGeographicLib.cmake b/cmake/FindGeographicLib.cmake
index 44f50de..58932cc 100644
--- a/cmake/FindGeographicLib.cmake
+++ b/cmake/FindGeographicLib.cmake
@@ -34,6 +34,7 @@ endif ()
 
 include (FindPackageHandleStandardArgs)
 find_package_handle_standard_args (GeographicLib DEFAULT_MSG
-  GeographicLib_LIBRARY_DIRS GeographicLib_LIBRARIES GeographicLib_INCLUDE_DIRS)
+  GeographicLib_LIBRARY_DIRS GeographicLib_LIBRARIES
+  GeographicLib_INCLUDE_DIRS)
 mark_as_advanced (GeographicLib_LIBRARY_DIRS GeographicLib_LIBRARIES
   GeographicLib_INCLUDE_DIRS)
diff --git a/configure b/configure
index 1aedd83..13fe3f5 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for GeographicLib 1.48.
+# Generated by GNU Autoconf 2.69 for GeographicLib 1.49.
 #
 # Report bugs to <charles at karney.com>.
 #
@@ -590,8 +590,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='GeographicLib'
 PACKAGE_TARNAME='geographiclib'
-PACKAGE_VERSION='1.48'
-PACKAGE_STRING='GeographicLib 1.48'
+PACKAGE_VERSION='1.49'
+PACKAGE_STRING='GeographicLib 1.49'
 PACKAGE_BUGREPORT='charles at karney.com'
 PACKAGE_URL=''
 
@@ -1354,7 +1354,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures GeographicLib 1.48 to adapt to many kinds of systems.
+\`configure' configures GeographicLib 1.49 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1425,7 +1425,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of GeographicLib 1.48:";;
+     short | recursive ) echo "Configuration of GeographicLib 1.49:";;
    esac
   cat <<\_ACEOF
 
@@ -1548,7 +1548,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-GeographicLib configure 1.48
+GeographicLib configure 1.49
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1989,7 +1989,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by GeographicLib $as_me 1.48, which was
+It was created by GeographicLib $as_me 1.49, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -2966,7 +2966,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='geographiclib'
- VERSION='1.48'
+ VERSION='1.49'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -3061,7 +3061,7 @@ fi
 
 
 GEOGRAPHICLIB_VERSION_MAJOR=1
-GEOGRAPHICLIB_VERSION_MINOR=48
+GEOGRAPHICLIB_VERSION_MINOR=49
 GEOGRAPHICLIB_VERSION_PATCH=0
 
 cat >>confdefs.h <<_ACEOF
@@ -3110,7 +3110,7 @@ ac_config_headers="$ac_config_headers include/GeographicLib/Config-ac.h"
 
 
 LT_CURRENT=18
-LT_REVISION=1
+LT_REVISION=2
 LT_AGE=1
 
 
@@ -16240,6 +16240,8 @@ fi
 fi
 
 # Check for C++11 math functions
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C++11 math functions" >&5
+$as_echo_n "checking for C++11 math functions... " >&6; }
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <cmath>
@@ -16257,12 +16259,17 @@ int q;
   return 0;
 }
 _ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
-  CXXFLAGS="$CXXFLAGS -DGEOGRAPHICLIB_CXX11_MATH=1"
+if ac_fn_cxx_try_link "$LINENO"; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; };
+	 CXXFLAGS="$CXXFLAGS -DGEOGRAPHICLIB_CXX11_MATH=1"
 else
-  CXXFLAGS="$CXXFLAGS -DGEOGRAPHICLIB_CXX11_MATH=0"
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; };
+	 CXXFLAGS="$CXXFLAGS -DGEOGRAPHICLIB_CXX11_MATH=0"
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 
 # Check for doxygen.  Version 1.8.7 or later needed for …
 for ac_prog in doxygen
@@ -17141,7 +17148,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by GeographicLib $as_me 1.48, which was
+This file was extended by GeographicLib $as_me 1.49, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -17207,7 +17214,7 @@ _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-GeographicLib config.status 1.48
+GeographicLib config.status 1.49
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff --git a/configure.ac b/configure.ac
index 1b1bdef..9ff747b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,7 +1,7 @@
 dnl
 dnl Copyright (C) 2009, Francesco P. Lovergine <frankie at debian.org>
 
-AC_INIT([GeographicLib],[1.48],[charles at karney.com])
+AC_INIT([GeographicLib],[1.49],[charles at karney.com])
 AC_CANONICAL_SYSTEM
 AC_PREREQ(2.61)
 AC_CONFIG_SRCDIR(src/Geodesic.cpp)
@@ -9,7 +9,7 @@ AC_CONFIG_MACRO_DIR(m4)
 AM_INIT_AUTOMAKE
 
 GEOGRAPHICLIB_VERSION_MAJOR=1
-GEOGRAPHICLIB_VERSION_MINOR=48
+GEOGRAPHICLIB_VERSION_MINOR=49
 GEOGRAPHICLIB_VERSION_PATCH=0
 AC_DEFINE_UNQUOTED([GEOGRAPHICLIB_VERSION_MAJOR],
         [$GEOGRAPHICLIB_VERSION_MAJOR],[major version number])
@@ -35,7 +35,7 @@ dnl Interfaces changed/added/removed:   CURRENT++ REVISION=0
 dnl Interfaces added:                   AGE++
 dnl Interfaces removed:                 AGE=0
 LT_CURRENT=18
-LT_REVISION=1
+LT_REVISION=2
 LT_AGE=1
 AC_SUBST(LT_CURRENT)
 AC_SUBST(LT_REVISION)
@@ -61,16 +61,20 @@ AX_CHECK_COMPILE_FLAG([-std=c++11],
         [AX_CHECK_COMPILE_FLAG([-std=c++0x],
                 [CXXFLAGS="$CXXFLAGS -std=c++0x"])])
 # Check for C++11 math functions
-AC_TRY_COMPILE([#include <cmath>],
+AC_MSG_CHECKING([for C++11 math functions])
+AC_LINK_IFELSE([AC_LANG_PROGRAM(
+        [#include <cmath>],
         [int q;
          return int(std::hypot(3.0, 4.0) + std::expm1(0.5) +
                     std::log1p(2.0) + std::asinh(10.0) +
                     std::atanh(0.8) + std::cbrt(8.0) +
                     std::fma(1.0, 2.0, 3.0) + std::remquo(100.0, 90.0, &q) +
                     std::remainder(100.0, 90.0) + std::copysign(1.0, -0.0)) +
-                    std::isfinite(4.0) + std::isnan(0.0);],
-        [CXXFLAGS="$CXXFLAGS -DGEOGRAPHICLIB_CXX11_MATH=1"],
-        [CXXFLAGS="$CXXFLAGS -DGEOGRAPHICLIB_CXX11_MATH=0"])
+                    std::isfinite(4.0) + std::isnan(0.0);])],
+        [AC_MSG_RESULT([yes]);
+	 CXXFLAGS="$CXXFLAGS -DGEOGRAPHICLIB_CXX11_MATH=1"],
+        [AC_MSG_RESULT([no]);
+	 CXXFLAGS="$CXXFLAGS -DGEOGRAPHICLIB_CXX11_MATH=0"])
 
 # Check for doxygen.  Version 1.8.7 or later needed for …
 AC_CHECK_PROGS([DOXYGEN], [doxygen])
diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt
index a1b2d48..6455055 100644
--- a/doc/CMakeLists.txt
+++ b/doc/CMakeLists.txt
@@ -70,7 +70,8 @@ if (DOXYGEN_FOUND)
   add_custom_target (fortrandoc ALL
     DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/html/Fortran/index.html)
   add_dependencies (fortrandoc cxxdoc)
-  add_custom_command (OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/html/Fortran/index.html
+  add_custom_command (OUTPUT
+      ${CMAKE_CURRENT_BINARY_DIR}/html/Fortran/index.html
     DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/doxyfile-for
       geodesic-for.dox ${FORTRANSOURCES}
     COMMAND ${DOXYGEN_EXECUTABLE} doxyfile-for > doxygen-for.log
diff --git a/doc/GeographicLib.dox.in b/doc/GeographicLib.dox.in
index 3e34c7c..f9ba997 100644
--- a/doc/GeographicLib.dox.in
+++ b/doc/GeographicLib.dox.in
@@ -12,7 +12,7 @@ namespace GeographicLib {
 \mainpage GeographicLib library
 \author Charles F. F. Karney (charles at karney.com)
 \version @PROJECT_VERSION@
-\date 2017-04-09
+\date 2017-10-05
 
 The documentation for other versions is available at
 <tt>https://geographiclib.sourceforge.io/m.nn/</tt> for versions numbers
@@ -39,9 +39,9 @@ the script for displaying
 
 This library is <i>not</i> a general purpose projection library nor does
 it perform datum conversions; instead use
-<a href="https://github.com/OSGeo/proj.4/wiki">proj.4</a>.  On the other
+<a href="http://proj.org">proj.4</a>.  On the other
 hand, it does provide the core functionality offered by
-<a href="http://earth-info.nima.mil/GandG/geotrans/">GEOTRANS</a>.
+<a href="http://earth-info.nga.mil/GandG/geotrans/">GEOTRANS</a>.
 
 \section download Download
 
@@ -64,12 +64,19 @@ Each release is tagged, e.g., with r at PROJECT_VERSION@.  There are also
 binary installers available for some platforms.  See \ref binaryinst.
 
 GeographicLib is licensed under the
-<a href="http://www.opensource.org/licenses/MIT">MIT/X11 License</a>;
+<a href="https://opensource.org/licenses/MIT">MIT/X11 License</a>;
 see <a href="LICENSE.txt">LICENSE.txt</a> for the terms.
 
 For more information on GeographicLib, see
 - https://geographiclib.sourceforge.io/.
 
+\section citint Citing GeographicLib
+
+When citing GeographicLib, use (adjust the version number and date as
+appropriate)
+- C. F. F. Karney, GeographicLib, Version @PROJECT_VERSION@ (2017-mm-dd),
+  https://geographiclib.sourceforge.io/@PROJECT_VERSION@
+
 \section contents Contents
  - \ref intro
  - \ref install
@@ -107,7 +114,7 @@ Forward to \ref install.  Up to \ref contents.
 
 GeographicLib offers a C++ interfaces to a small (but important!) set
 of geographic transformations.  It grew out of a desire to improve on
-the <a href="http://earth-info.nima.mil/GandG/geotrans/">geotrans</a>
+the <a href="http://earth-info.nga.mil/GandG/geotrans/">geotrans</a>
 package for transforming between geographic and MGRS coordinates.  At
 present, GeographicLib provides UTM, UPS, MGRS, geocentric, and local
 cartesian projections, gravity and geomagnetic models, and classes for
@@ -200,11 +207,12 @@ GeographicLib- at PROJECT_VERSION@.zip</a> (or
 <a href="https://sourceforge.net/projects/geographiclib/files/distrib/GeographicLib-@PROJECT_VERSION@-win32.exe">
 GeographicLib- at PROJECT_VERSION@-win32.exe</a> or
 <a href="https://sourceforge.net/projects/geographiclib/files/distrib/GeographicLib-@PROJECT_VERSION@-win64.exe">
-GeographicLib- at PROJECT_VERSION@-win64.exe</a> for binary installation under Windows).
+GeographicLib- at PROJECT_VERSION@-win64.exe</a>
+for binary installation under Windows).
 Then pick one of the first five options below:
 - \ref cmake.  This is the preferred installation method as it will work
   on the widest range of platforms.  However it requires that you have
-  <a href="http://www.cmake.org">cmake</a> installed.
+  <a href="https://www.cmake.org">cmake</a> installed.
 - \ref autoconf.  This method works for most Unix-like systems,
   including Linux and Mac OS X.
 - \ref gnu.  This is a simple installation method that works with g++
@@ -213,8 +221,8 @@ Then pick one of the first five options below:
   Visual Studio 2008 and 2010 under Windows.
 - \ref binaryinst.  Use this installation method if you only need to use
   the \ref utilities supplied with GeographicLib.  (This method also
-  installs the header files and the library for use by Visual Studio 12
-  2013.)
+  installs the header files and the library for use by Visual Studio 14
+  2015.)
 - \ref qt.  How to compile GeographicLib so that it can be used by Qt
   programs.
 - \ref maintainer.  This describes addition tasks of interest only to
@@ -250,7 +258,7 @@ make software maintenance simpler
 \section cmake Installation with cmake
 
 This is the recommended method of installation; however it requires that
-<a href="http://www.cmake.org">cmake</a> be installed on your system.
+<a href="https://www.cmake.org">cmake</a> be installed on your system.
 This permits GeographicLib to be built either as a shared or a static
 library on a wide variety of systems.  cmake can also determine the
 capabilities of your system and adjust the compilation of the
@@ -265,7 +273,7 @@ command like
 GeographicLib is 2.8.4 (which was released on 2011-02-16).  (Actually,
 a few earlier versions will also work for non-Windows platforms.)
 
-On other systems, download a binary installer from http://www.cmake.org
+On other systems, download a binary installer from https://www.cmake.org
 click on download, and save and run the appropriate installer.  Run the
 cmake command with no arguments to get help.  Other useful tools are
 ccmake and cmake-gui which offer curses and graphical interfaces to
@@ -376,6 +384,10 @@ Here are the steps to compile and install GeographicLib:
   - <code>APPLE_MULTIPLE_ARCHITECTURES</code> (default: OFF).  If set to
     ON, build for i386 and x86_64 and Mac OS X systems.  Otherwise,
     build for the default architecture.
+  - <code>CONVERT_WARNINGS_TO_ERRORS</code> (default: OFF).  If set to
+    ON, then compiler warnings are treated as errors.  (This happens
+    also if you are a "developer", i.e., if the file
+    <code>tests/CMakeLists.txt</code> is present.)
 - Build and install the software.  In non-IDE environments, run
   \verbatim
   make         # compile the library and utilities
@@ -494,7 +506,7 @@ Binary installers are available for some platforms
 
 Use this method if you only need to use the GeographicLib utilities.
 The header files and static and shared versions of library are also
-provided; these can only be used by Visual Studio 12 2013 (in either
+provided; these can only be used by Visual Studio 14 2015 (in either
 release or debug mode).  However, if you plan to use the library, it may
 be advisable to build it with the compiler you are using for your own
 code using either \ref cmake or \ref windows.
@@ -519,7 +531,7 @@ uninstalling the library).  If you ask for your PATH to be modified, it
 will include C:/pkg-vc12-{win32,x64}/GeographicLib- at PROJECT_VERSION@/bin
 where the utilities are installed.  The headers and library are
 installed in the include/GeographicLib and lib folders.  The libraries
-were built using using Visual Studio 12 2013 in release and debug modes.
+were built using using Visual Studio 14 2015 in release and debug modes.
 The utilities were linked against the release-mode shared library.
 
 <a href="NET/index.html">NETGeographicLib</a> library dlls (release and
@@ -529,7 +541,7 @@ the shared library for GeographicLib.
 \subsection binaryinstosx MacOSX
 
 You can install using Homebrew.  Follow the directions on
-http://brew.sh/ for installing this package manager.  Then type
+https://brew.sh/ for installing this package manager.  Then type
 \verbatim
 brew install geographiclib \endverbatim
 Now links to GeographicLib are installed under /usr/local.
@@ -625,6 +637,38 @@ which will create the additional files and packages the results ready
 for distribution as \verbatim
   geographiclib- at PROJECT_VERSION@.tar.gz \endverbatim
 
+Prior to making a release, the script
+<code>tests/test-distribution.sh</code> is run on a Fedora system.  This
+checked that the library compiles correctly is multiple configurations.
+In addition it creates a directory and scripts for checking the
+compilation on Windows.
+
+The following Fedora packages are required by
+<code>tests/test-distribution.sh</code>
+- cmake
+- automake
+- autoconf-archive
+- libtool
+- gcc-c++
+- gcc-gfortran
+- ccache
+- doxygen
+- boost-devel
+- octave
+- python2-sphinx
+- nodejs
+- maven
+.
+The following npm packages need to be installed \verbatim
+  npm install -g mocha jsdoc \endverbatim
+A recent version of mpreal.h needs to be downloaded from
+https://bitbucket.org/advanpix/mpreal and installed
+in the <code>include/</code> directory.  For all the tests to be run,
+the following datasets need to be installed
+- geoid models: egm96-5
+- magnetic models: wmm2010 emm2015
+- gravity models: egm2008 grs80
+
 <center>
 Back to \ref intro.  Forward to \ref start.  Up to \ref contents.
 </center>
@@ -1193,13 +1237,13 @@ Here is a summary:
 - C (geodesic routines):
   <a href="C/index.html">
     documentation</a>, also included with recent versions of
-  <a href="https://github.com/OSGeo/proj.4/wiki">
+  <a href="http://proj.org">
     proj.4</a>;
 - Fortran (geodesic routines):
   <a href="Fortran/index.html">
     documentation</a>;
 - Java (geodesic routines):
-  <a href="http://repo1.maven.org/maven2/net/sf/geographiclib/GeographicLib-Java/">
+  <a href="https://repo1.maven.org/maven2/net/sf/geographiclib/GeographicLib-Java/">
     Maven Central package</a>,
   <a href="java/index.html">
     documentation</a>;
@@ -1209,14 +1253,14 @@ Here is a summary:
   <a href="js/index.html">
     documentation</a>;
 - Python (geodesic routines):
-  <a href="http://pypi.python.org/pypi/geographiclib">
+  <a href="https://pypi.python.org/pypi/geographiclib">
     PyPI package</a>,
   <a href="python/index.html">
     documentation</a>;
 - MATLAB/Octave (geodesic and some other routines):
-  <a href="http://www.mathworks.com/matlabcentral/fileexchange/50605">
+  <a href="https://www.mathworks.com/matlabcentral/fileexchange/50605">
     MATLAB Central package</a>,
-  <a href="http://www.mathworks.com/matlabcentral/fileexchange/50605/content/Contents.m">
+  <a href="https://www.mathworks.com/matlabcentral/fileexchange/50605/content/Contents.m">
     documentation</a>;
 - C# (.NET wrapper for C++ library):
   <a href="NET/index.html">
@@ -1243,7 +1287,7 @@ direct and inverse geodesic problems and to compute polygonal areas are
 provided.
 
 The C library is also included as part of
-<a href="https://github.com/OSGeo/proj.4/wiki">proj.4</a> starting with
+<a href="http://proj.org">proj.4</a> starting with
 version 4.9.0, where it is used as the computational backend for
 <a href="https://github.com/OSGeo/proj.4/wiki/Mangeod">geod(1)</a>.
 
@@ -1311,7 +1355,7 @@ entirely self-contained and does not depend on the rest of
 GeographicLib.
 
 The library is available as an
-<a href="http://pypi.python.org/pypi/geographiclib">
+<a href="https://pypi.python.org/pypi/geographiclib">
    PyPI package</a>.
 To install this package, use \verbatim
   pip install geographiclib \endverbatim
@@ -1343,7 +1387,7 @@ images.  The source code is in the directory
 self-contained and does not depend on the rest of GeographicLib.
 
 The library is available as an MATLAB Central package,
-<a href="http://www.mathworks.com/matlabcentral/fileexchange/50605">
+<a href="https://www.mathworks.com/matlabcentral/fileexchange/50605">
     GeographicLib toolbox</a>.
 
 A summary of the routines is obtained by \verbatim
@@ -1353,7 +1397,7 @@ Prior to version 1.42, GeographicLib was distributed with some MATLAB
 functionality offered via compiled interface code.  This has now been
 replaced by native MATLAB wrapper functions in
 <code>matlab/geographiclib-legacy</code>; these depend on the
-<a href="http://www.mathworks.com/matlabcentral/fileexchange/50605">
+<a href="https://www.mathworks.com/matlabcentral/fileexchange/50605">
 GeographicLib toolbox</a>.
 A summary of the routines is obtained by \verbatim
    help geographiclib-legacy \endverbatim
@@ -1738,6 +1782,15 @@ The resulting files sizes are
 Currently, there are no plans for GeographicLib to support this
 compressed format.
 
+The Geoid class only handles world-wide geoid models.  The pgm provides
+geoid height postings on grid of points with uniform spacing in latitude
+(row) and longitude (column).  If the dimensions of the pgm file are
+\e h × \e w, then latitude (resp. longitude) spacing is
+180°/(\e h − 1) (resp. 360°/\e w), with the (0,0) pixel
+given the value at φ = 90°, λ = 0°.  Models covering a
+restricted area will need to be "inserted" into a world-wide grid before
+being accessible to the Geoid class.
+
 \section geoidinterp Interpolating the geoid data
 
 Geoid evaluates the geoid height using bilinear or cubic
@@ -2348,7 +2401,7 @@ to use a consistent definition of the geoid height.
  .
 A useful discussion of the problems with defining a geoid is given by
 Dru A. Smith in
-<a href="http://www.ngs.noaa.gov/PUBS_LIB/EGM96_GEOID_PAPER/egm96_geoid_paper.html">
+<a href="https://www.ngs.noaa.gov/PUBS_LIB/EGM96_GEOID_PAPER/egm96_geoid_paper.html">
 There is no such thing as "The" EGM96 geoid: Subtle points on the use of
 a global geopotential model</a>, IGeS Bulletin No. 8, International
 Geoid Service, Milan, Italy, pp. 17--28 (1998).
@@ -2443,7 +2496,7 @@ point.  There are two ways to speed up this computation:
 Both of these techniques are illustrated by the following code,
 which computes a table of geoid heights on
 a regular grid and writes on the result in a
-<a href="http://vdatum.noaa.gov/dev/gtx_info.html#dev_gtx_binary">.gtx</a>
+<a href="https://vdatum.noaa.gov/docs/gtx_info.html#dev_gtx_binary">.gtx</a>
 file.  On an 8-processor Intel 2.66 GHz machine using OpenMP
 (-DHAVE_OPENMP=1), it takes about 40 minutes of elapsed time to compute
 the geoid height for EGM2008 on a 1' grid.  (Without these
@@ -2845,36 +2898,40 @@ expand the internal magnetic potential of the earth as sum of spherical
 harmonics.  They neglect magnetic fields due to the ionosphere, the
 magnetosphere, nearby magnetized materials, electric machinery, etc.
 Users of MagneticModel are advised to read the
-<a href="http://www.ngdc.noaa.gov/IAGA/vmod/igrfhw.html">"Health
+<a href="https://www.ngdc.noaa.gov/IAGA/vmod/igrfhw.html">"Health
 Warning"</a> this is provided with igrf11.  Although the advice is
 specific to igrf11, many of the comments apply to all magnetic field
 models.
 
 The supported models are
  - <b>wmm2010</b>, the
-   <a href="http://ngdc.noaa.gov/geomag/WMM/DoDWMM.shtml"> World
+   <a href="https://ngdc.noaa.gov/geomag/WMM/DoDWMM.shtml"> World
    Magnetic Model 2010</a>, which approximates the main magnetic field
    for the period 2010--2015.
  - <b>wmm2015</b>, the
-   <a href="http://ngdc.noaa.gov/geomag/WMM/DoDWMM.shtml"> World
+   <a href="https://ngdc.noaa.gov/geomag/WMM/DoDWMM.shtml"> World
    Magnetic Model 2015</a>, which approximates the main magnetic field
    for the period 2015--2020.
  - <b>igrf11</b>, the
-   <a href="http://ngdc.noaa.gov/IAGA/vmod/igrf.html">International
+   <a href="https://ngdc.noaa.gov/IAGA/vmod/igrf.html">International
    Geomagnetic Reference Field (11th generation)</a>, which approximates
    the main magnetic field for the period 1900--2015.
  - <b>igrf12</b>, the
-   <a href="http://ngdc.noaa.gov/IAGA/vmod/igrf.html">International
+   <a href="https://ngdc.noaa.gov/IAGA/vmod/igrf.html">International
    Geomagnetic Reference Field (12th generation)</a>, which approximates
    the main magnetic field for the period 1900--2020.
  - <b>emm2010</b>, the
-   <a href="http://ngdc.noaa.gov/geomag/EMM/index.html"> Enhanced
+   <a href="https://ngdc.noaa.gov/geomag/EMM/index.html"> Enhanced
    Magnetic Model 2010</a>, which approximates the main and crustal
    magnetic fields for the period 2010--2015.
  - <b>emm2015</b>, the
-   <a href="http://ngdc.noaa.gov/geomag/EMM/index.html"> Enhanced
+   <a href="https://ngdc.noaa.gov/geomag/EMM/index.html"> Enhanced
    Magnetic Model 2015</a>, which approximates the main and crustal
    magnetic fields for the period 2000--2020.
+ - <b>emm2017</b>, the
+   <a href="https://ngdc.noaa.gov/geomag/EMM/index.html"> Enhanced
+   Magnetic Model 2017</a>, which approximates the main and crustal
+   magnetic fields for the period 2000--2022.
 
 Go to
  - \ref magneticinst
@@ -2975,10 +3032,24 @@ These magnetic models are available for download:
  link</a> (660)</center>
  <td><center>
  <a href="https://sourceforge.net/projects/geographiclib/files/magnetic-distrib/emm2015.exe">
- link</a> (1000)</center>
+ link</a> (990)</center>
  <td><center>
  <a href="https://sourceforge.net/projects/geographiclib/files/magnetic-distrib/emm2015.zip">
- link</a> (1100)</center>
+ link</a> (1030)</center>
+<tr>
+ <td>emm2017
+ <td><center>790</center>
+ <td><center>2000--2022</center>
+ <td><center>5050</center>
+ <td><center>
+ <a href="https://sourceforge.net/projects/geographiclib/files/magnetic-distrib/emm2017.tar.bz2">
+ link</a> (1740)</center>
+ <td><center>
+ <a href="https://sourceforge.net/projects/geographiclib/files/magnetic-distrib/emm2017.exe">
+ link</a> (1700)</center>
+ <td><center>
+ <a href="https://sourceforge.net/projects/geographiclib/files/magnetic-distrib/emm2017.zip">
+ link</a> (2750)</center>
 </table>
 </center>
 The "size" column is the size of the uncompressed data.
@@ -2988,7 +3059,7 @@ geographiclib-get-magnetic (typically installed in /usr/local/sbin)
 which automates the process of downloading and installing the magnetic
 models.  For example
 \verbatim
-   geographiclib-get-magnetic all  # install wmm2010, wmm2015, igrf11, igrf12, emm2010, emm2015
+   geographiclib-get-magnetic all  # install wmm2010, wmm2015, igrf11, igrf12, emm2010, emm2015, emm2017
    geographiclib-get-magnetic -h   # for help
 \endverbatim
 This script should be run as a user with write access to the
@@ -3063,10 +3134,10 @@ keywords
      linear interpolation is used.
    - <b>NumConstants</b> (default 0), the number of time-independent
      terms; this can be 0 or 1.  This keyword was introduced in format
-     version 2 (GeographicLib version 1.43) to support the EMM2015
-     model.  This model includes long wavelength time-varying
+     version 2 (GeographicLib version 1.43) to support the EMM2015 and
+     later models.  This model includes long wavelength time-varying
      components of degree 15.  This is supplemented by a short
-     wavelength time-independent component with degree = 729.
+     wavelength time-independent component with much higher degree.
    - <b>Epoch</b> (required), the time origin (in fractional years) for
      the first model.
    - <b>DeltaEpoch</b> (default 1), the interval between models in years
@@ -3153,7 +3224,7 @@ WMMF-1
 # https://geographiclib.sourceforge.io/html/magnetic.html#magneticformat
 Name            igrf11
 Description     International Geomagnetic Reference Field 11th Generation
-URL             http://ngdc.noaa.gov/IAGA/vmod/igrf.html
+URL             https://ngdc.noaa.gov/IAGA/vmod/igrf.html
 Publisher       National Oceanic and Atmospheric Administration
 ReleaseDate     2009-12-15
 DataCutOff      2009-10-01
@@ -5197,7 +5268,7 @@ References:
    Aeronautical Chart and Information Center (St. Louis, 1964),
    Chaps. 5--7.
  - W. M. Kahan and R. J. Fateman,
-   <a href="http://www.cs.berkeley.edu/~fateman/papers/divdiff.pdf">
+   <a href="https://www.cs.berkeley.edu/~fateman/papers/divdiff.pdf">
    Symbolic computation of divided differences</a>,
    SIGSAM Bull. 33(3), 7--28 (1999)
    DOI: <a href="https://doi.org/10.1145/334714.334716">
@@ -5783,7 +5854,7 @@ References:
    The Great Ellipse on the Surface of the Spheroid</a>,
    J. Navigation 49(2), 229--234 (1996).
  - T. Vincenty,
-   <a href="http://www.ngs.noaa.gov/PUBS_LIB/inverse.pdf">
+   <a href="https://www.ngs.noaa.gov/PUBS_LIB/inverse.pdf">
    Direct and Inverse Solutions of Geodesics on the Ellipsoid with
    Application of Nested Equations</a>,
    Survey Review 23(176), 88--93 (1975).
@@ -6642,7 +6713,7 @@ Here we give the complete matrix of relations between all six latitudes;
 there are 30 (= 6 × 5) such relations.  These
 expansions complement the work of
 - O. S. Adams,
-  <a href="http://docs.lib.noaa.gov/rescue/cgs_specpubs/QB275U35no671921.pdf">
+  <a href="https://docs.lib.noaa.gov/rescue/cgs_specpubs/QB275U35no671921.pdf">
   Latitude developments connected with geodesy and cartography</a>,
   Spec. Pub. 67 (US Coast and Geodetic Survey, 1921).
 - P. Osborne,
@@ -7583,6 +7654,29 @@ of the
 <a href="https://sourceforge.net/p/geographiclib/code/ci/release/tree/">
 git repository for GeographicLib</a>.
 
+ - <a href="https://geographiclib.sourceforge.io/1.49">Version 1.49</a>
+   (released 2017-10-05)
+   - Add the Enhanced Magnetic Model 2017, emm2017.  This is valid for
+     2000 thru the end of 2021.
+   - Avoid potential problems with the order of initializations in DMS,
+     GARS, Geohash, Georef, MGRS, OSGB, SphericalEngine; this only would
+     have been an issue if GeographicLib objects were instantiated
+     globally.  Now no GeographicLib initialization code should be run
+     prior to the entry of main().
+   - To support the previous fix, add an overload,
+     Utility::lookup(const char* s, char c).
+   - NearestNeighbor::Search throws an error if \e pts is the wrong size
+     (instead of merely returning no results).
+   - Use complex arithmetic for Clenshaw sums in TransverseMercator and
+     tranmerc_{fwd,inv}.m.
+   - Changes in cmake support:
+     - fix compiler flags for GEOGRAPHICLIB_PRECISION = 4;
+     - add CONVERT_WARNINGS_TO_ERRORS option (default OFF), if ON then
+       compiler warnings are treated as errors.
+   - Fix warnings about implicit conversions of doubles to bools in C++,
+     C, and JavaScript packages.
+   - Binary installers for Windows now use Visual Studio 14 2015.
+
  - <a href="https://geographiclib.sourceforge.io/1.48">Version 1.48</a>
    (released 2017-04-09)
    - The "official" URL for GeographicLib is now
@@ -8005,7 +8099,7 @@ git repository for GeographicLib</a>.
        architecture independent;
      - matlab/geographiclib is now packaged and distributed as
        MATLAB File Exchange package
-       <a href="http://www.mathworks.com/matlabcentral/fileexchange/50605">
+       <a href="https://www.mathworks.com/matlabcentral/fileexchange/50605">
        50605</a> (this supersedes three earlier MATLAB packages);
      - point fix for geodarea.m to correct bug in area of polygons which
        encircle a pole multiple times (released as version 1.41.1 of
@@ -8134,7 +8228,7 @@ git repository for GeographicLib</a>.
    - Add \ref highprec.
    - <b>INCOMPATIBLE CHANGE</b>: the static instantiations of various
      classes for the WGS84 ellipsoid have been changed to a
-     <a href="http://isocpp.org/wiki/faq/ctors#static-init-order-on-first-use">
+     <a href="https://isocpp.org/wiki/faq/ctors#static-init-order-on-first-use">
      "construct on first use idiom"</a>.  This avoids a lot of wasteful
      initialization before the user's code starts.  Unfortunately it
      means that existing source code that relies on any of the following
@@ -8420,10 +8514,9 @@ git repository for GeographicLib</a>.
      - restart Newton's method in Geodesic::Inverse when it goes awry;
      - back up Newton's method with the bisection method;
      - Geodesic::Inverse now converges for any value of \e f;
-     - add GeodesicExact and
-       GeodesicLineExact which are formulated in terms
-       of elliptic integrals and thus yield accurate results even for
-       very eccentric ellipsoids.
+     - add GeodesicExact and GeodesicLineExact which are formulated in
+       terms of elliptic integrals and thus yield accurate results even
+       for very eccentric ellipsoids;
      - the -E option to <a href="GeodSolve.1.html">Geod</a> invokes these
        exact classes.
    - Add functionality to EllipticFunction:
@@ -8439,7 +8532,7 @@ git repository for GeographicLib</a>.
      - remove support for maintainer tasks in Makefile.mk;
      - upgrade to automake 1.11.6 to fix the "make distcheck" security
        vulnerability; see
-       http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2012-3386
+       https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2012-3386
 
  - <a href="https://geographiclib.sourceforge.io/1.24">Version 1.24</a>
    (released 2012-09-22)
@@ -8624,7 +8717,7 @@ git repository for GeographicLib</a>.
      - FIX BUG in transcription of Geodesic::Inverse;
      - include setup.py for easy installation;
      - Python only distribution is available at
-       http://pypi.python.org/pypi/geographiclib
+       https://pypi.python.org/pypi/geographiclib
    - Supply a minimal Qt qmake project file for library
      src/Geographic.pro.
 
diff --git a/doc/NETGeographicLib.dox b/doc/NETGeographicLib.dox
index 459b39d..4009dfd 100644
--- a/doc/NETGeographicLib.dox
+++ b/doc/NETGeographicLib.dox
@@ -11,8 +11,8 @@
 /**
 \mainpage NETGeographicLib library
 \author Scott Heiman (mrmtdew2 at outlook.com)
-\version 1.47
-\date 2017-02-15
+\version 1.49
+\date 2017-10-05
 
 The documentation for other versions is available at
 <tt>https://geographiclib.sourceforge.io/m.nn/NET</tt> for versions numbers
@@ -37,7 +37,7 @@ versions of Microsoft Visual Studio.
 
 NETGeographicLib has been tested with C#, Managed C++, and Visual Basic.
 Sample code snippets can be found in
-\<install folder\>/GeographicLib-1.46/dotnet/examples.
+\<install folder\>/GeographicLib-1.49/dotnet/examples.
 
 \section differences Differences between NETGeographicLib and GeographicLib
 
@@ -143,7 +143,7 @@ to any Visual Basic source that uses NETGeographicLib classes.
 
 A C# sample application is provided that demonstrates NETGeographicLib classes.
 The source code for the sample application is located in
-\<install folder\>/GeographicLib-1.46/dotnet/Projections.  The sample
+\<install folder\>/GeographicLib-1.49/dotnet/Projections.  The sample
 application creates a tabbed dialog.  Each tab provides data entry fields that
 allow the user to exercise one or more NETGeographicLib classes.
 
diff --git a/doc/doxyfile-c.in b/doc/doxyfile-c.in
index cbefed0..611f63e 100644
--- a/doc/doxyfile-c.in
+++ b/doc/doxyfile-c.in
@@ -1186,7 +1186,7 @@ USE_MATHJAX            = NO
 # However, it is strongly recommended to install a local
 # copy of MathJax from http://www.mathjax.org before deployment.
 
-MATHJAX_RELPATH        = https://cdn.mathjax.org/mathjax/latest
+MATHJAX_RELPATH        = https://geographiclib.sourceforge.io/MathJax-2.7.2
 
 # The MATHJAX_EXTENSIONS tag can be used to specify one or MathJax extension
 # names that should be enabled during MathJax rendering.
diff --git a/doc/doxyfile-for.in b/doc/doxyfile-for.in
index 6285dd2..d18e706 100644
--- a/doc/doxyfile-for.in
+++ b/doc/doxyfile-for.in
@@ -1185,7 +1185,7 @@ USE_MATHJAX            = NO
 # However, it is strongly recommended to install a local
 # copy of MathJax from http://www.mathjax.org before deployment.
 
-MATHJAX_RELPATH        = https://cdn.mathjax.org/mathjax/latest
+MATHJAX_RELPATH        = https://geographiclib.sourceforge.io/MathJax-2.7.2
 
 # The MATHJAX_EXTENSIONS tag can be used to specify one or MathJax extension
 # names that should be enabled during MathJax rendering.
diff --git a/doc/doxyfile-net.in b/doc/doxyfile-net.in
index ff1d0af..2b082c8 100644
--- a/doc/doxyfile-net.in
+++ b/doc/doxyfile-net.in
@@ -1187,7 +1187,7 @@ USE_MATHJAX            = YES
 # However, it is strongly recommended to install a local
 # copy of MathJax from http://www.mathjax.org before deployment.
 
-MATHJAX_RELPATH        = https://cdn.mathjax.org/mathjax/latest
+MATHJAX_RELPATH        = https://geographiclib.sourceforge.io/MathJax-2.7.2
 
 # The MATHJAX_EXTENSIONS tag can be used to specify one or MathJax extension
 # names that should be enabled during MathJax rendering.
diff --git a/doc/doxyfile.in b/doc/doxyfile.in
index db1dc8c..eb234e9 100644
--- a/doc/doxyfile.in
+++ b/doc/doxyfile.in
@@ -1190,7 +1190,7 @@ USE_MATHJAX            = YES
 # However, it is strongly recommended to install a local
 # copy of MathJax from http://www.mathjax.org before deployment.
 
-MATHJAX_RELPATH        = https://cdn.mathjax.org/mathjax/latest
+MATHJAX_RELPATH        = https://geographiclib.sourceforge.io/MathJax-2.7.2
 
 # The MATHJAX_EXTENSIONS tag can be used to specify one or MathJax extension
 # names that should be enabled during MathJax rendering.
diff --git a/doc/geodesic-c.dox b/doc/geodesic-c.dox
index 7cc43d6..2923dcf 100644
--- a/doc/geodesic-c.dox
+++ b/doc/geodesic-c.dox
@@ -11,7 +11,7 @@
 /**
 \mainpage Geodesic routines implemented in C
 \author Charles F. F. Karney (charles at karney.com)
-\version 1.48
+\version 1.49
 
 The documentation for other versions is available at
 <tt>https://geographiclib.sourceforge.io/m.nn/C</tt> for versions numbers
@@ -19,30 +19,31 @@ The documentation for other versions is available at
 
 \section abstract-c Abstract
 
-This is a C implementation of the geodesic algorithms from <a
-href="https://geographiclib.sourceforge.io">GeographicLib</a>.  This is a
-self-contained library (requiring only the standard C math library)
+This is a C implementation of the geodesic algorithms from
+<a href="https://geographiclib.sourceforge.io">GeographicLib</a>.  This
+is a self-contained library (requiring only the standard C math library)
 which makes it easy to do geodesic computations for an ellipsoid of
-revolution in a C program.  It is included with the recent version of
-<a href="https://github.com/OSGeo/proj.4/wiki">proj.4</a>.
+revolution in a C program.  It is included with version 4.9.0 of
+<a href="http://proj4.org">proj.4</a> and later.
 It uses ANSI C as described in B. W. Kernigan and D. M. Ritchie, The C
 Programming Language, 2nd Ed. (Prentice Hall, 1988), and so should
-compile correctly with just about any C compiler.
+compile correctly with just about any C compiler.  However, the C99 math
+functions are used if they are available.
 
 \section download-c Downloading the source
 
 The C library is part of %GeographicLib which available for download at
-- <a href="https://sourceforge.net/projects/geographiclib/files/distrib/GeographicLib-1.48.tar.gz">
-  GeographicLib-1.48.tar.gz</a>
-- <a href="https://sourceforge.net/projects/geographiclib/files/distrib/GeographicLib-1.48.zip">
-  GeographicLib-1.48.zip</a>
+- <a href="https://sourceforge.net/projects/geographiclib/files/distrib/GeographicLib-1.49.tar.gz">
+  GeographicLib-1.49.tar.gz</a>
+- <a href="https://sourceforge.net/projects/geographiclib/files/distrib/GeographicLib-1.49.zip">
+  GeographicLib-1.49.zip</a>
 .
 as either a compressed tar file (tar.gz) or a zip file.  After unpacking
 the source, the C library can be found in the directory <tt>legacy/C</tt>.
 The library consists of two files geodesic.c and geodesic.h.
 
 The library is also included as part of
-<a href="https://github.com/OSGeo/proj.4/wiki">proj.4</a> starting with
+<a href="http://proj.org">proj.4</a> starting with
 version 4.9.0, where it is used as the computational backend for
 <a href="https://github.com/OSGeo/proj.4/wiki/Mangeod">geod(1)</a>.
 Instructions for how to use the library via proj.4 are given below.
@@ -154,7 +155,7 @@ echo 30 0 29.5 179.5 | ./inverse \endverbatim
   - C (geodesic routines):
     <a href="../C/index.html">
       documentation</a>, also included with recent versions of
-    <a href="https://github.com/OSGeo/proj.4/wiki">
+    <a href="http://proj.org">
       proj.4</a>;
   - Fortran (geodesic routines):
     <a href="../Fortran/index.html">
@@ -190,8 +191,14 @@ echo 30 0 29.5 179.5 | ./inverse \endverbatim
 
 \section changes-c Change log
 
+ - <a href="https://geographiclib.sourceforge.io/1.49/C">Version 1.49</a>
+   (released 2017-10-05)
+   - Fix more warning messages from some compilers; add tests.
+
  - <a href="https://geographiclib.sourceforge.io/1.48/C">Version 1.48</a>
    (released 2017-04-09)
+   - This is the version slated for the version of proj.4 after 4.9.4
+     (tagged v1.48.1-c).
    - Fix warnings messages from some compilers.
    - Change default range for longitude and azimuth to
      (−180°, 180°] (instead of
@@ -199,6 +206,8 @@ echo 30 0 29.5 179.5 | ./inverse \endverbatim
 
  - <a href="https://geographiclib.sourceforge.io/1.47/C">Version 1.47</a>
    (released 2017-02-15)
+   - This is the version incorporated into proj.4 version 4.9.3 (tagged
+     v1.46.1-c).
    - Fix the order of declarations, incorporating the patches in version
      1.46.1.
    - Improve accuracy of area calculation (fixing a flaw introduced in
@@ -221,6 +230,7 @@ echo 30 0 29.5 179.5 | ./inverse \endverbatim
 
  - <a href="https://geographiclib.sourceforge.io/1.44/C">Version 1.44</a>
    (released 2015-08-14)
+   - This is the version incorporated into proj.4 version 4.9.2.
    - Improve accuracy of calculations by evaluating trigonometric
      functions more carefully and replacing the series for the reduced
      length with one with a smaller truncation error.
@@ -230,4 +240,13 @@ echo 30 0 29.5 179.5 | ./inverse \endverbatim
      returning NaNs if the latitude is outside this range.
    - The inverse calculation sets \e s12 to zero for coincident points
      at pole (instead of returning a tiny quantity).
+
+ - <a href="https://geographiclib.sourceforge.io/1.40/C">Version 1.40</a>
+   (released 2014-12-18)
+   - This is the version incorporated into proj.4 version 4.9.1.
+
+ - <a href="https://geographiclib.sourceforge.io/1.40/C">Version 1.32</a>
+   (released 2013-07-12)
+   - This is the version incorporated into proj.4 version 4.9.0.
+
 **********************************************************************/
diff --git a/doc/geodesic-for.dox b/doc/geodesic-for.dox
index 690edad..477380e 100644
--- a/doc/geodesic-for.dox
+++ b/doc/geodesic-for.dox
@@ -11,7 +11,7 @@
 /**
 \mainpage Geodesic routines implemented in Fortran
 \author Charles F. F. Karney (charles at karney.com)
-\version 1.48
+\version 1.49
 
 The documentation for other versions is available at
 <tt>https://geographiclib.sourceforge.io/m.nn/Fortran</tt> for versions numbers
@@ -29,10 +29,10 @@ compile correctly with just about any Fortran compiler.
 \section download-for Downloading the source
 
 The Fortran library is part of %GeographicLib which available for download at
-- <a href="https://sourceforge.net/projects/geographiclib/files/distrib/GeographicLib-1.48.tar.gz">
-  GeographicLib-1.48.tar.gz</a>
-- <a href="https://sourceforge.net/projects/geographiclib/files/distrib/GeographicLib-1.48.zip">
-  GeographicLib-1.48.zip</a>
+- <a href="https://sourceforge.net/projects/geographiclib/files/distrib/GeographicLib-1.49.tar.gz">
+  GeographicLib-1.49.tar.gz</a>
+- <a href="https://sourceforge.net/projects/geographiclib/files/distrib/GeographicLib-1.49.zip">
+  GeographicLib-1.49.zip</a>
 .
 as either a compressed tar file (tar.gz) or a zip file.  After unpacking
 the source, the Fortran library can be found in the directory
@@ -174,6 +174,10 @@ and are therefore in the public domain.
 
 \section changes-for Change log
 
+ - <a href="https://geographiclib.sourceforge.io/1.49/Fortran">Version 1.49</a>
+   (released 2017-10-05)
+   - Fix code formatting and add two tests.
+
  - <a href="https://geographiclib.sourceforge.io/1.48/Fortran">Version 1.48</a>
    (released 2017-04-09)
    - Change default range for longitude and azimuth to
diff --git a/doc/geodseries30.html b/doc/geodseries30.html
index 263f751..a428749 100644
--- a/doc/geodseries30.html
+++ b/doc/geodseries30.html
@@ -14,14 +14,14 @@ flattening.  See
     <blockquote>
       Charles F. F. Karney,<br>
       <a href="https://doi.org/10.1007/s00190-012-0578-z">
-	<i>Algorithms for geodesics</i></a>,<br>
+        <i>Algorithms for geodesics</i></a>,<br>
       J. Geodesy <b>87</b>(1), 43–55 (Jan. 2013);<br>
       DOI:
       <a href="https://doi.org/10.1007/s00190-012-0578-z">
-	10.1007/s00190-012-0578-z</a>
+        10.1007/s00190-012-0578-z</a>
       (<a href="https://doi.org/10.1007/s00190-012-0578-z">pdf</a>);
       addenda: <a href="https://geographiclib.sourceforge.io/geod-addenda.html">
-	geod-addenda.html</a>.
+        geod-addenda.html</a>.
     </blockquote>
 
     <pre>
diff --git a/dotnet/examples/CS/example-AlbersEqualArea.cs b/dotnet/examples/CS/example-AlbersEqualArea.cs
index bf063d3..4d31bcb 100644
--- a/dotnet/examples/CS/example-AlbersEqualArea.cs
+++ b/dotnet/examples/CS/example-AlbersEqualArea.cs
@@ -11,7 +11,7 @@ namespace example_AlbersEqualArea
                 const double
                     lat1 = 40 + 58/60.0, lat2 = 39 + 56/60.0, // standard parallels
                     k1 = 1,                                   // scale
-                    lon0 = -77 - 45/60.0;                     // Central meridan
+                    lon0 = -77 - 45/60.0;                     // Central meridian
                 // Set up basic projection
                 AlbersEqualArea albers = new AlbersEqualArea( Constants.WGS84.MajorRadius,
                                                               Constants.WGS84.Flattening,
diff --git a/dotnet/examples/ManagedCPP/example-AlbersEqualArea.cpp b/dotnet/examples/ManagedCPP/example-AlbersEqualArea.cpp
index 0f3fa7a..59eb06c 100644
--- a/dotnet/examples/ManagedCPP/example-AlbersEqualArea.cpp
+++ b/dotnet/examples/ManagedCPP/example-AlbersEqualArea.cpp
@@ -7,7 +7,7 @@ int main(array<System::String ^> ^/*args*/)
         const double
             lat1 = 40 + 58/60.0, lat2 = 39 + 56/60.0, // standard parallels
             k1 = 1,                                   // scale
-            lon0 = -77 - 45/60.0;                     // Central meridan
+            lon0 = -77 - 45/60.0;                     // Central meridian
         // Set up basic projection
         AlbersEqualArea^ albers = gcnew AlbersEqualArea( Constants::WGS84::MajorRadius,
                                                          Constants::WGS84::Flattening,
diff --git a/dotnet/examples/VB/example-AlbersEqualArea.vb b/dotnet/examples/VB/example-AlbersEqualArea.vb
index 221eebb..2678450 100644
--- a/dotnet/examples/VB/example-AlbersEqualArea.vb
+++ b/dotnet/examples/VB/example-AlbersEqualArea.vb
@@ -5,7 +5,7 @@ Module example_AlbersEqualArea
         Try
             Dim lat1 As Double = 40 + 58 / 60.0 : Dim lat2 As Double = 39 + 56 / 60.0 ' standard parallels
             Dim k1 As Double = 1  ' scale
-            Dim lon0 As Double = -77 - 45 / 60.0 ' Central meridan
+            Dim lon0 As Double = -77 - 45 / 60.0 ' Central meridian
             ' Set up basic projection
             Dim albers As AlbersEqualArea = New AlbersEqualArea(Constants.WGS84.MajorRadius,
                                                                 Constants.WGS84.Flattening,
diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt
index 02ace0c..c2d9f03 100644
--- a/examples/CMakeLists.txt
+++ b/examples/CMakeLists.txt
@@ -39,7 +39,8 @@ if (OPENMP_FOUND)
   set_target_properties (GeoidToGTX PROPERTIES
     COMPILE_FLAGS ${OpenMP_CXX_FLAGS})
   if (NOT WIN32)
-    set_target_properties (GeoidToGTX PROPERTIES LINK_FLAGS ${OpenMP_CXX_FLAGS})
+    set_target_properties (GeoidToGTX PROPERTIES
+      LINK_FLAGS ${OpenMP_CXX_FLAGS})
   endif ()
 endif ()
 
diff --git a/examples/JacobiConformal.cpp b/examples/JacobiConformal.cpp
index a132e55..3340b0a 100644
--- a/examples/JacobiConformal.cpp
+++ b/examples/JacobiConformal.cpp
@@ -2,6 +2,7 @@
 
 #include <iostream>
 #include <iomanip>
+#include <exception>
 #include <GeographicLib/Utility.hpp>
 #include "JacobiConformal.hpp"
 
diff --git a/examples/example-AlbersEqualArea.cpp b/examples/example-AlbersEqualArea.cpp
index 2967fdf..cb7dfdf 100644
--- a/examples/example-AlbersEqualArea.cpp
+++ b/examples/example-AlbersEqualArea.cpp
@@ -14,7 +14,7 @@ int main() {
      f = Constants::WGS84_f(),
      lat1 = 40 + 58/60.0, lat2 = 39 + 56/60.0, // standard parallels
      k1 = 1,                                   // scale
-     lon0 = -77 - 45/60.0;                     // Central meridan
+     lon0 = -77 - 45/60.0;                     // Central meridian
    // Set up basic projection
    const AlbersEqualArea albers(a, f, lat1, lat2, k1);
    {
diff --git a/examples/example-DMS.cpp b/examples/example-DMS.cpp
index bca2a9e..583a174 100644
--- a/examples/example-DMS.cpp
+++ b/examples/example-DMS.cpp
@@ -1,6 +1,7 @@
 // Example of using the GeographicLib::DMS class
 
 #include <iostream>
+#include <string>
 #include <exception>
 #include <GeographicLib/DMS.hpp>
 
diff --git a/examples/example-EllipticFunction.cpp b/examples/example-EllipticFunction.cpp
index 81a6127..51b6b14 100644
--- a/examples/example-EllipticFunction.cpp
+++ b/examples/example-EllipticFunction.cpp
@@ -2,6 +2,7 @@
 
 #include <iostream>
 #include <iomanip>
+#include <exception>
 #include <cmath>
 #include <GeographicLib/Math.hpp>
 #include <GeographicLib/EllipticFunction.hpp>
@@ -36,7 +37,7 @@ int main() {
          << "RG(2,3,4)      = " << EllipticFunction::RG(2,3,4)    << "\n"
          << "RG(0,0.0796,4) = " << EllipticFunction::RG(0.0796,4) << "\n";
   }
-  catch (const GeographicErr& e) {
+  catch (const exception& e) {
     cout << "Caught exception: " << e.what() << "\n";
   }
 }
diff --git a/examples/example-GeoCoords.cpp b/examples/example-GeoCoords.cpp
index 14f049f..bca624a 100644
--- a/examples/example-GeoCoords.cpp
+++ b/examples/example-GeoCoords.cpp
@@ -2,7 +2,6 @@
 
 #include <iostream>
 #include <exception>
-#include <string>
 #include <GeographicLib/GeoCoords.hpp>
 
 using namespace std;
diff --git a/examples/example-GeodesicLine.cpp b/examples/example-GeodesicLine.cpp
index 4dfcd94..1310620 100644
--- a/examples/example-GeodesicLine.cpp
+++ b/examples/example-GeodesicLine.cpp
@@ -1,9 +1,9 @@
 // Example of using the GeographicLib::GeodesicLine class
 
 #include <iostream>
+#include <iomanip>
 #include <exception>
 #include <cmath>
-#include <iomanip>
 #include <GeographicLib/Geodesic.hpp>
 #include <GeographicLib/GeodesicLine.hpp>
 #include <GeographicLib/Constants.hpp>
diff --git a/examples/example-GeodesicLineExact.cpp b/examples/example-GeodesicLineExact.cpp
index 65595a7..c1842af 100644
--- a/examples/example-GeodesicLineExact.cpp
+++ b/examples/example-GeodesicLineExact.cpp
@@ -1,9 +1,9 @@
 // Example of using the GeographicLib::GeodesicLineExact class
 
 #include <iostream>
+#include <iomanip>
 #include <exception>
 #include <cmath>
-#include <iomanip>
 #include <GeographicLib/GeodesicExact.hpp>
 #include <GeographicLib/GeodesicLineExact.hpp>
 #include <GeographicLib/Constants.hpp>
diff --git a/examples/example-NearestNeighbor.cpp b/examples/example-NearestNeighbor.cpp
index eb8319f..750afda 100644
--- a/examples/example-NearestNeighbor.cpp
+++ b/examples/example-NearestNeighbor.cpp
@@ -1,17 +1,15 @@
 // Example of using the GeographicLib::NearestNeighbor class.  WARNING: this
-// creates a file, vptree.xml or vptree.bin, in the current directory.
+// creates a file, pointset.xml or pointset.txt, in the current directory.
+// Read lat/lon locations from locations.txt and lat/lon queries from
+// queries.txt.  For each query print to standard output: the index for the
+// closest location and the distance to it.  Print statistics to standard error
+// at the end.
 
 #include <iostream>
-
+#include <exception>
 #include <vector>
-#include <cstdlib>              // For srand, rand
-#include <cmath>                // For asin
 #include <fstream>
 #include <string>
-#include <sstream>
-#include <algorithm>            // For sort
-#include <GeographicLib/NearestNeighbor.hpp>
-#include <GeographicLib/Geodesic.hpp>
 
 #if !defined(GEOGRAPHICLIB_HAVE_BOOST_SERIALIZATION)
 #define GEOGRAPHICLIB_HAVE_BOOST_SERIALIZATION 0
@@ -23,111 +21,112 @@
 #include <boost/archive/xml_oarchive.hpp>
 #endif
 
+#include <GeographicLib/NearestNeighbor.hpp>
+#include <GeographicLib/Geodesic.hpp>
+#include <GeographicLib/DMS.hpp>
+
 using namespace std;
 using namespace GeographicLib;
 
-// A structure to hold a geographic coordinate.  Also included is a field for a
-// "name".  This is unused in this example.
+// A structure to hold a geographic coordinate.
 struct pos {
-  double lat, lon;
-  string name;
-  pos(double lat = 0, double lon = 0, const string& name = "")
-    : lat(lat), lon(lon), name(name) {}
+  double _lat, _lon;
+  pos(double lat = 0, double lon = 0) : _lat(lat), _lon(lon) {}
 };
 
-pos randompos() {
-  double r, lat, lon;
-  r = 2 * (rand() + 0.5) / (RAND_MAX + 1.0) - 1;
-  lat = asin(r) / Math::degree();
-  r = 2 * (rand() + 0.5) / (RAND_MAX + 1.0) - 1;
-  lon = 180 * r;
-  return pos(lat, lon);
-}
-
 // A class to compute the distance between 2 positions.
 class DistanceCalculator {
 private:
   Geodesic _geod;
 public:
-  explicit DistanceCalculator(const Geodesic& geod)
-    : _geod(geod) {}
+  explicit DistanceCalculator(const Geodesic& geod) : _geod(geod) {}
   double operator() (const pos& a, const pos& b) const {
-    double s12;
-    _geod.Inverse(a.lat, a.lon, b.lat, b.lon, s12);
-    return s12;
+    double d;
+    _geod.Inverse(a._lat, a._lon, b._lat, b._lon, d);
+    if ( !(d >= 0) )
+      // Catch illegal positions which result in d = NaN
+      throw GeographicErr("distance doesn't satisfy d >= 0");
+    return d;
   }
 };
 
-typedef NearestNeighbor<double, pos, DistanceCalculator> GeodesicNeighbor;
-
-// Pick 10000 points on the ellipsoid and determine which ones are more than
-// 350 km from all the others.
-
-// In this example the NearestNeighbor object is saved to an external file and
-// read back in.  This is unnecessary in this simple application, but is useful
-// if many different applications need to query the same dataset.
-
 int main() {
   try {
+    // Read in locations
+    vector<pos> locs;
+    double lat, lon;
+    string sa, sb;
+    {
+      ifstream is("locations.txt");
+      if (!is.good())
+        throw GeographicErr("locations.txt not readable");
+      while (is >> sa >> sb) {
+        DMS::DecodeLatLon(sa, sb, lat, lon);
+        locs.push_back(pos(lat, lon));
+      }
+      if (locs.size() == 0)
+        throw GeographicErr("need at least one location");
+    }
+
     // Define a distance function object
     DistanceCalculator distance(Geodesic::WGS84());
-    srand(0);
-    vector<pos> pts;
-    int num = 10000;
-    // Sample the points
-    for (int i = 0; i < num; ++i) pts.push_back(randompos());
+
+    // Create NearestNeighbor object
+    NearestNeighbor<double, pos, DistanceCalculator> pointset;
+
     {
-      // Illustrate saving and restoring the GeodesicNeighbor
-      // construct it
-      GeodesicNeighbor posset(pts, distance);
-      // and save it
+      // Used saved object if it is available
 #if GEOGRAPHICLIB_HAVE_BOOST_SERIALIZATION
-      ofstream f("vptree.xml");
-      boost::archive::xml_oarchive oa(f);
-      oa << BOOST_SERIALIZATION_NVP(posset);
+      ifstream is("pointset.xml");
+      if (is.good()) {
+        boost::archive::xml_iarchive ia(is);
+        ia >> BOOST_SERIALIZATION_NVP(pointset);
+      }
 #else
-      ofstream ofs("vptree.txt");
-      ofs << posset << "\n";
+      ifstream is("pointset.txt");
+      if (is.good())
+        is >> pointset;
 #endif
     }
-    // Construct an empty GeodesicNeighbor
-    GeodesicNeighbor posset;
-    // restore it from the file
-    {
+    // Is the saved pointset up-to-date?
+    if (pointset.NumPoints() != int(locs.size())) {
+      // else initialize it
+      pointset.Initialize(locs, distance);
+      // and save it
 #if GEOGRAPHICLIB_HAVE_BOOST_SERIALIZATION
-      ifstream f("vptree.xml");
-      boost::archive::xml_iarchive ia(f);
-      ia >> BOOST_SERIALIZATION_NVP(posset);
+      ofstream os("pointset.xml");
+      if (!os.good())
+        throw GeographicErr("cannot write to pointset.xml");
+      boost::archive::xml_oarchive oa(os);
+      oa << BOOST_SERIALIZATION_NVP(pointset);
 #else
-      ifstream ifs("vptree.txt");
-      ifs >> posset;
+      ofstream os("pointset.txt");
+      if (!os.good())
+        throw GeographicErr("cannot write to pointset.txt");
+      os << pointset << "\n";
 #endif
     }
-    // Now use it
-    vector<int> ind;
-    int cnt = 0;
-    double thresh = 325000;
-    cout << "Points more than " << thresh/1000 << "km from their neighbors\n"
-         << "latitude longitude distance\n";
-    for (int i = 0; i < num; ++i) {
-      // Call search with distance limits = (0, thresh].  Set exhaustive = false
-      // so that the search ends as some as a neighbor is found.
-      posset.Search(pts, distance, pts[i], ind, 1, thresh, 0, false);
-      if (ind.size() == 0) {
-        // If no neighbors in (0, thresh], search again with no upper limit and
-        // with exhaustive = true (the default).
-        double d = posset.Search(pts, distance, pts[i], ind, 1,
-                                 numeric_limits<double>::max(), 0);
-        cout << pts[i].lat << " " << pts[i].lon << " " << d << "\n";
-        ++cnt;
-      }
+
+    ifstream is("queries.txt");
+    double d;
+    int count = 0;
+    vector<int> k;
+    while (is >> sa >> sb) {
+      ++count;
+      DMS::DecodeLatLon(sa, sb, lat, lon);
+      d = pointset.Search(locs, distance, pos(lat, lon), k);
+      if (k.size() != 1)
+          throw GeographicErr("unexpected number of results");
+      cout << k[0] << " " << d << "\n";
     }
     int setupcost, numsearches, searchcost, mincost, maxcost;
     double mean, sd;
-    posset.Statistics(setupcost, numsearches, searchcost, mincost, maxcost,
-                      mean, sd);
-    int totcost = setupcost + searchcost, exhaustivecost = num * (num - 1) / 2;
-    cout
+    pointset.Statistics(setupcost, numsearches, searchcost,
+                        mincost, maxcost, mean, sd);
+    int
+      totcost = setupcost + searchcost,
+      exhaustivecost = count * pointset.NumPoints();
+    cerr
       << "Number of distance calculations = " << totcost << "\n"
       << "With an exhaustive search = " << exhaustivecost << "\n"
       << "Ratio = " << double(totcost) / exhaustivecost << "\n"
diff --git a/examples/example-PolarStereographic.cpp b/examples/example-PolarStereographic.cpp
index 072664e..cae3fe3 100644
--- a/examples/example-PolarStereographic.cpp
+++ b/examples/example-PolarStereographic.cpp
@@ -1,9 +1,8 @@
 // Example of using the GeographicLib::PolarStereographic class
 
 #include <iostream>
-#include <exception>
-#include <string>
 #include <iomanip>
+#include <exception>
 #include <GeographicLib/PolarStereographic.hpp>
 
 using namespace std;
diff --git a/examples/example-RhumbLine.cpp b/examples/example-RhumbLine.cpp
index 58ac83f..04c5615 100644
--- a/examples/example-RhumbLine.cpp
+++ b/examples/example-RhumbLine.cpp
@@ -1,9 +1,9 @@
 // Example of using the GeographicLib::RhumbLine class
 
 #include <iostream>
+#include <iomanip>
 #include <exception>
 #include <cmath>
-#include <iomanip>
 #include <GeographicLib/Rhumb.hpp>
 #include <GeographicLib/Constants.hpp>
 
diff --git a/examples/example-TransverseMercator.cpp b/examples/example-TransverseMercator.cpp
index 1c58f0e..e0a1b4e 100644
--- a/examples/example-TransverseMercator.cpp
+++ b/examples/example-TransverseMercator.cpp
@@ -1,34 +1,59 @@
 // Example of using the GeographicLib::TransverseMercator class
 
 #include <iostream>
-#include <exception>
-#include <string>
 #include <iomanip>
+#include <exception>
 #include <GeographicLib/TransverseMercator.hpp>
 
 using namespace std;
 using namespace GeographicLib;
 
+// Define a UTM projection for an arbitrary ellipsoid
+class UTMalt {
+private:
+  TransverseMercator _tm;       // The projection
+  double _lon0;                 // Central longitude
+  double _falseeasting, _falsenorthing;
+public:
+  UTMalt(double a,              // equatorial radius
+         double f,              // flattening
+         int zone,              // the UTM zone + hemisphere
+         bool northp)
+    : _tm(a, f, Constants::UTM_k0())
+    , _lon0(6 * zone - 183)
+    , _falseeasting(5e5)
+    , _falsenorthing(northp ? 0 : 100e5) {
+    if (!(zone >= 1 && zone <= 60))
+      throw GeographicErr("zone not in [1,60]");
+  }
+  void Forward(double lat, double lon, double& x, double& y) {
+    _tm.Forward(_lon0, lat, lon, x, y);
+    x += _falseeasting;
+    y += _falsenorthing;
+  }
+  void Reverse(double x, double y, double& lat, double& lon) {
+    x -= _falseeasting;
+    y -= _falsenorthing;
+    _tm.Reverse(_lon0, x, y, lat, lon);
+  }
+};
+
 int main() {
   try {
-    TransverseMercator proj(Constants::WGS84_a(), Constants::WGS84_f(),
-                            Constants::UTM_k0());
-    // Alternatively:
-    // const TransverseMercator& proj = TransverseMercator::UTM();
-    double lon0 = -75;          // Central meridian for UTM zone 18
+    UTMalt tm(6378388, 1/297.0, 30, true); // International ellipsoid, zone 30n
     {
       // Sample forward calculation
-      double lat = 40.3, lon = -74.7; // Princeton, NJ
+      double lat = 40.4, lon = -3.7; // Madrid
       double x, y;
-      proj.Forward(lon0, lat, lon, x, y);
-      cout << x << " " << y << "\n";
+      tm.Forward(lat, lon, x, y);
+      cout << fixed << setprecision(0) << x << " " << y << "\n";
     }
     {
       // Sample reverse calculation
-      double x = 25e3, y = 4461e3;
+      double x = 441e3, y = 4472e3;
       double lat, lon;
-      proj.Reverse(lon0, x, y, lat, lon);
-      cout << lat << " " << lon << "\n";
+      tm.Reverse(x, y, lat, lon);
+      cout << fixed << setprecision(5) << lat << " " << lon << "\n";
     }
   }
   catch (const exception& e) {
diff --git a/examples/example-TransverseMercatorExact.cpp b/examples/example-TransverseMercatorExact.cpp
index 2f307de..6247c35 100644
--- a/examples/example-TransverseMercatorExact.cpp
+++ b/examples/example-TransverseMercatorExact.cpp
@@ -1,9 +1,8 @@
 // Example of using the GeographicLib::TransverseMercatorExact class
 
 #include <iostream>
-#include <exception>
-#include <string>
 #include <iomanip>
+#include <exception>
 #include <GeographicLib/TransverseMercatorExact.hpp>
 
 using namespace std;
diff --git a/examples/example-UTMUPS.cpp b/examples/example-UTMUPS.cpp
index 0146a73..03d2b15 100644
--- a/examples/example-UTMUPS.cpp
+++ b/examples/example-UTMUPS.cpp
@@ -1,9 +1,9 @@
 // Example of using the GeographicLib::UTMUPS class
 
 #include <iostream>
+#include <iomanip>
 #include <exception>
 #include <string>
-#include <iomanip>
 #include <GeographicLib/UTMUPS.hpp>
 
 using namespace std;
diff --git a/include/GeographicLib/Accumulator.hpp b/include/GeographicLib/Accumulator.hpp
index a001583..25457eb 100644
--- a/include/GeographicLib/Accumulator.hpp
+++ b/include/GeographicLib/Accumulator.hpp
@@ -43,7 +43,7 @@ namespace GeographicLib {
     T _s, _t;
     // Same as Math::sum, but requires abs(u) >= abs(v).  This isn't currently
     // used.
-    static inline T fastsum(T u, T v, T& t) {
+    static T fastsum(T u, T v, T& t) {
       GEOGRAPHICLIB_VOLATILE T s = u + v;
       GEOGRAPHICLIB_VOLATILE T vp = s - u;
       t = v - vp;
@@ -52,7 +52,8 @@ namespace GeographicLib {
     void Add(T y) {
       // Here's Shewchuk's solution...
       T u;                       // hold exact sum as [s, t, u]
-      y  = Math::sum(y, _t,  u); // Accumulate starting at least significant end
+      // Accumulate starting at least significant end
+      y  = Math::sum(y, _t,  u);
       _s = Math::sum(y, _s, _t);
       // Start is _s, _t decreasing and non-adjacent.  Sum is now (s + t + u)
       // exactly with s, t, u non-adjacent and in decreasing order (except for
@@ -115,7 +116,8 @@ namespace GeographicLib {
      **********************************************************************/
     T operator()() const { return _s; }
     /**
-     * Return the result of adding a number to \e sum (but don't change \e sum).
+     * Return the result of adding a number to \e sum (but don't change \e
+     * sum).
      *
      * @param[in] y the number to be added to the sum.
      * @return \e sum + \e y.
diff --git a/include/GeographicLib/AlbersEqualArea.hpp b/include/GeographicLib/AlbersEqualArea.hpp
index 113bcfa..290b0c5 100644
--- a/include/GeographicLib/AlbersEqualArea.hpp
+++ b/include/GeographicLib/AlbersEqualArea.hpp
@@ -2,7 +2,7 @@
  * \file AlbersEqualArea.hpp
  * \brief Header for GeographicLib::AlbersEqualArea class
  *
- * Copyright (c) Charles Karney (2010-2016) <charles at karney.com> and licensed
+ * Copyright (c) Charles Karney (2010-2017) <charles at karney.com> and licensed
  * under the MIT/X11 License.  For more information, see
  * https://geographiclib.sourceforge.io/
  **********************************************************************/
@@ -66,18 +66,18 @@ namespace GeographicLib {
     real _n0, _m02, _nrho0, _k2, _txi0, _scxi0, _sxi0;
     static const int numit_ = 5;   // Newton iterations in Reverse
     static const int numit0_ = 20; // Newton iterations in Init
-    static inline real hyp(real x) { return Math::hypot(real(1), x); }
+    static real hyp(real x) { return Math::hypot(real(1), x); }
     // atanh(      e   * x)/      e   if f > 0
     // atan (sqrt(-e2) * x)/sqrt(-e2) if f < 0
     // x                              if f = 0
-    inline real atanhee(real x) const {
+    real atanhee(real x) const {
       using std::atan2; using std::abs;
       return _f > 0 ? Math::atanh(_e * x)/_e :
         // We only invoke atanhee in txif for positive latitude.  Then x is
         // only negative for very prolate ellipsoids (_b/_a >= sqrt(2)) and we
         // still need to return a positive result in this case; hence the need
         // for the call to atan2.
-        (_f < 0 ? (atan2(_e * abs(x), x < 0 ? -1 : 1)/_e) : x);
+        (_f < 0 ? (atan2(_e * abs(x), real(x < 0 ? -1 : 1))/_e) : x);
     }
     // return atanh(sqrt(x))/sqrt(x) - 1, accurate for small x
     static real atanhxm1(real x);
@@ -99,16 +99,16 @@ namespace GeographicLib {
     //                = Df(x,y)*(g(x)+g(y))/2 + Dg(x,y)*(f(x)+f(y))/2
     //
     // sn(x) = x/sqrt(1+x^2): Dsn(x,y) = (x+y)/((sn(x)+sn(y))*(1+x^2)*(1+y^2))
-    static inline real Dsn(real x, real y, real sx, real sy) {
+    static real Dsn(real x, real y, real sx, real sy) {
       // sx = x/hyp(x)
       real t = x * y;
       return t > 0 ? (x + y) * Math::sq( (sx * sy)/t ) / (sx + sy) :
         (x - y != 0 ? (sx - sy) / (x - y) : 1);
     }
     // Datanhee(x,y) = atanhee((x-y)/(1-e^2*x*y))/(x-y)
-    inline real Datanhee(real x, real y) const {
+    real Datanhee(real x, real y) const {
       real t = x - y, d = 1 - _e2 * x * y;
-      return t ? atanhee(t / d) / t : 1 / d;
+      return t != 0 ? atanhee(t / d) / t : 1 / d;
     }
     // DDatanhee(x,y) = (Datanhee(1,y) - Datanhee(1,x))/(y-x)
     real DDatanhee(real x, real y) const;
diff --git a/include/GeographicLib/Config.h b/include/GeographicLib/Config.h
index d3ce77c..5611465 100644
--- a/include/GeographicLib/Config.h
+++ b/include/GeographicLib/Config.h
@@ -1,8 +1,8 @@
 // This will be overwritten by ./configure
 
-#define GEOGRAPHICLIB_VERSION_STRING "1.48"
+#define GEOGRAPHICLIB_VERSION_STRING "1.49"
 #define GEOGRAPHICLIB_VERSION_MAJOR 1
-#define GEOGRAPHICLIB_VERSION_MINOR 48
+#define GEOGRAPHICLIB_VERSION_MINOR 49
 #define GEOGRAPHICLIB_VERSION_PATCH 0
 
 // Undefine HAVE_LONG_DOUBLE if this type is unknown to the compiler
diff --git a/include/GeographicLib/Constants.hpp b/include/GeographicLib/Constants.hpp
index 7361809..d879480 100644
--- a/include/GeographicLib/Constants.hpp
+++ b/include/GeographicLib/Constants.hpp
@@ -137,16 +137,16 @@ namespace GeographicLib {
     /**
      * A synonym for Math::degree<real>().
      **********************************************************************/
-    static inline Math::real degree() { return Math::degree(); }
+    static Math::real degree() { return Math::degree(); }
     /**
      * @return the number of radians in an arcminute.
      **********************************************************************/
-    static inline Math::real arcminute()
+    static Math::real arcminute()
     { return Math::degree() / 60; }
     /**
      * @return the number of radians in an arcsecond.
      **********************************************************************/
-    static inline Math::real arcsecond()
+    static Math::real arcsecond()
     { return Math::degree() / 3600; }
 
     /** \name Ellipsoid parameters
@@ -156,17 +156,17 @@ namespace GeographicLib {
      * @tparam T the type of the returned value.
      * @return the equatorial radius of WGS84 ellipsoid (6378137 m).
      **********************************************************************/
-    template<typename T> static inline T WGS84_a()
+    template<typename T> static T WGS84_a()
     { return 6378137 * meter<T>(); }
     /**
      * A synonym for WGS84_a<real>().
      **********************************************************************/
-    static inline Math::real WGS84_a() { return WGS84_a<real>(); }
+    static Math::real WGS84_a() { return WGS84_a<real>(); }
     /**
      * @tparam T the type of the returned value.
      * @return the flattening of WGS84 ellipsoid (1/298.257223563).
      **********************************************************************/
-    template<typename T> static inline T WGS84_f() {
+    template<typename T> static T WGS84_f() {
       // Evaluating this as 1000000000 / T(298257223563LL) reduces the
       // round-off error by about 10%.  However, expressing the flattening as
       // 1/298.257223563 is well ingrained.
@@ -175,50 +175,50 @@ namespace GeographicLib {
     /**
      * A synonym for WGS84_f<real>().
      **********************************************************************/
-    static inline Math::real WGS84_f() { return WGS84_f<real>(); }
+    static Math::real WGS84_f() { return WGS84_f<real>(); }
     /**
      * @tparam T the type of the returned value.
      * @return the gravitational constant of the WGS84 ellipsoid, \e GM, in
      *   m<sup>3</sup> s<sup>−2</sup>.
      **********************************************************************/
-    template<typename T> static inline T WGS84_GM()
+    template<typename T> static T WGS84_GM()
     { return T(3986004) * 100000000 + 41800000; }
     /**
      * A synonym for WGS84_GM<real>().
      **********************************************************************/
-    static inline Math::real WGS84_GM() { return WGS84_GM<real>(); }
+    static Math::real WGS84_GM() { return WGS84_GM<real>(); }
     /**
      * @tparam T the type of the returned value.
      * @return the angular velocity of the WGS84 ellipsoid, ω, in rad
      *   s<sup>−1</sup>.
      **********************************************************************/
-    template<typename T> static inline T WGS84_omega()
+    template<typename T> static T WGS84_omega()
     { return 7292115 / (T(1000000) * 100000); }
     /**
      * A synonym for WGS84_omega<real>().
      **********************************************************************/
-    static inline Math::real WGS84_omega() { return WGS84_omega<real>(); }
+    static Math::real WGS84_omega() { return WGS84_omega<real>(); }
     /**
      * @tparam T the type of the returned value.
      * @return the equatorial radius of GRS80 ellipsoid, \e a, in m.
      **********************************************************************/
-    template<typename T> static inline T GRS80_a()
+    template<typename T> static T GRS80_a()
     { return 6378137 * meter<T>(); }
     /**
      * A synonym for GRS80_a<real>().
      **********************************************************************/
-    static inline Math::real GRS80_a() { return GRS80_a<real>(); }
+    static Math::real GRS80_a() { return GRS80_a<real>(); }
     /**
      * @tparam T the type of the returned value.
      * @return the gravitational constant of the GRS80 ellipsoid, \e GM, in
      *   m<sup>3</sup> s<sup>−2</sup>.
      **********************************************************************/
-    template<typename T> static inline T GRS80_GM()
+    template<typename T> static T GRS80_GM()
     { return T(3986005) * 100000000; }
     /**
      * A synonym for GRS80_GM<real>().
      **********************************************************************/
-    static inline Math::real GRS80_GM() { return GRS80_GM<real>(); }
+    static Math::real GRS80_GM() { return GRS80_GM<real>(); }
     /**
      * @tparam T the type of the returned value.
      * @return the angular velocity of the GRS80 ellipsoid, ω, in rad
@@ -231,43 +231,43 @@ namespace GeographicLib {
      * approximation (because the Gregorian year includes the precession of the
      * earth's axis).
      **********************************************************************/
-    template<typename T> static inline T GRS80_omega()
+    template<typename T> static T GRS80_omega()
     { return 7292115 / (T(1000000) * 100000); }
     /**
      * A synonym for GRS80_omega<real>().
      **********************************************************************/
-    static inline Math::real GRS80_omega() { return GRS80_omega<real>(); }
+    static Math::real GRS80_omega() { return GRS80_omega<real>(); }
     /**
      * @tparam T the type of the returned value.
      * @return the dynamical form factor of the GRS80 ellipsoid,
      *   <i>J</i><sub>2</sub>.
      **********************************************************************/
-    template<typename T> static inline T GRS80_J2()
+    template<typename T> static T GRS80_J2()
     { return T(108263) / 100000000; }
     /**
      * A synonym for GRS80_J2<real>().
      **********************************************************************/
-    static inline Math::real GRS80_J2() { return GRS80_J2<real>(); }
+    static Math::real GRS80_J2() { return GRS80_J2<real>(); }
     /**
      * @tparam T the type of the returned value.
      * @return the central scale factor for UTM (0.9996).
      **********************************************************************/
-    template<typename T> static inline T UTM_k0()
+    template<typename T> static T UTM_k0()
     {return T(9996) / 10000; }
     /**
      * A synonym for UTM_k0<real>().
      **********************************************************************/
-    static inline Math::real UTM_k0() { return UTM_k0<real>(); }
+    static Math::real UTM_k0() { return UTM_k0<real>(); }
     /**
      * @tparam T the type of the returned value.
      * @return the central scale factor for UPS (0.994).
      **********************************************************************/
-    template<typename T> static inline T UPS_k0()
+    template<typename T> static T UPS_k0()
     { return T(994) / 1000; }
     /**
      * A synonym for UPS_k0<real>().
      **********************************************************************/
-    static inline Math::real UPS_k0() { return UPS_k0<real>(); }
+    static Math::real UPS_k0() { return UPS_k0<real>(); }
     ///@}
 
     /** \name SI units
@@ -280,21 +280,21 @@ namespace GeographicLib {
      * This is unity, but this lets the internal system of units be changed if
      * necessary.
      **********************************************************************/
-    template<typename T> static inline T meter() { return T(1); }
+    template<typename T> static T meter() { return T(1); }
     /**
      * A synonym for meter<real>().
      **********************************************************************/
-    static inline Math::real meter() { return meter<real>(); }
+    static Math::real meter() { return meter<real>(); }
     /**
      * @return the number of meters in a kilometer.
      **********************************************************************/
-    static inline Math::real kilometer()
+    static Math::real kilometer()
     { return 1000 * meter<real>(); }
     /**
      * @return the number of meters in a nautical mile (approximately 1 arc
      *   minute)
      **********************************************************************/
-    static inline Math::real nauticalmile()
+    static Math::real nauticalmile()
     { return 1852 * meter<real>(); }
 
     /**
@@ -304,27 +304,27 @@ namespace GeographicLib {
      * This is unity, but this lets the internal system of units be changed if
      * necessary.
      **********************************************************************/
-    template<typename T> static inline T square_meter()
+    template<typename T> static T square_meter()
     { return meter<real>() * meter<real>(); }
     /**
      * A synonym for square_meter<real>().
      **********************************************************************/
-    static inline Math::real square_meter()
+    static Math::real square_meter()
     { return square_meter<real>(); }
     /**
      * @return the number of square meters in a hectare.
      **********************************************************************/
-    static inline Math::real hectare()
+    static Math::real hectare()
     { return 10000 * square_meter<real>(); }
     /**
      * @return the number of square meters in a square kilometer.
      **********************************************************************/
-    static inline Math::real square_kilometer()
+    static Math::real square_kilometer()
     { return kilometer() * kilometer(); }
     /**
      * @return the number of square meters in a square nautical mile.
      **********************************************************************/
-    static inline Math::real square_nauticalmile()
+    static Math::real square_nauticalmile()
     { return nauticalmile() * nauticalmile(); }
     ///@}
 
@@ -334,36 +334,36 @@ namespace GeographicLib {
     /**
      * @return the number of meters in an international foot.
      **********************************************************************/
-    static inline Math::real foot()
+    static Math::real foot()
     { return real(254 * 12) / 10000 * meter<real>(); }
     /**
      * @return the number of meters in a yard.
      **********************************************************************/
-    static inline Math::real yard() { return 3 * foot(); }
+    static Math::real yard() { return 3 * foot(); }
     /**
      * @return the number of meters in a fathom.
      **********************************************************************/
-    static inline Math::real fathom() { return 2 * yard(); }
+    static Math::real fathom() { return 2 * yard(); }
     /**
      * @return the number of meters in a chain.
      **********************************************************************/
-    static inline Math::real chain() { return 22 * yard(); }
+    static Math::real chain() { return 22 * yard(); }
     /**
      * @return the number of meters in a furlong.
      **********************************************************************/
-    static inline Math::real furlong() { return 10 * chain(); }
+    static Math::real furlong() { return 10 * chain(); }
     /**
      * @return the number of meters in a statute mile.
      **********************************************************************/
-    static inline Math::real mile() { return 8 * furlong(); }
+    static Math::real mile() { return 8 * furlong(); }
     /**
      * @return the number of square meters in an acre.
      **********************************************************************/
-    static inline Math::real acre() { return chain() * furlong(); }
+    static Math::real acre() { return chain() * furlong(); }
     /**
      * @return the number of square meters in a square statute mile.
      **********************************************************************/
-    static inline Math::real square_mile() { return mile() * mile(); }
+    static Math::real square_mile() { return mile() * mile(); }
     ///@}
 
     /** \name Anachronistic US units
@@ -372,7 +372,7 @@ namespace GeographicLib {
     /**
      * @return the number of meters in a US survey foot.
      **********************************************************************/
-    static inline Math::real surveyfoot()
+    static Math::real surveyfoot()
     { return real(1200) / 3937 * meter<real>(); }
     ///@}
   };
diff --git a/include/GeographicLib/DMS.hpp b/include/GeographicLib/DMS.hpp
index 0b3ac34..169f279 100644
--- a/include/GeographicLib/DMS.hpp
+++ b/include/GeographicLib/DMS.hpp
@@ -2,7 +2,7 @@
  * \file DMS.hpp
  * \brief Header for GeographicLib::DMS class
  *
- * Copyright (c) Charles Karney (2008-2016) <charles at karney.com> and licensed
+ * Copyright (c) Charles Karney (2008-2017) <charles at karney.com> and licensed
  * under the MIT/X11 License.  For more information, see
  * https://geographiclib.sourceforge.io/
  **********************************************************************/
@@ -100,11 +100,11 @@ namespace GeographicLib {
         s.replace(p, pat.length(), 1, c);
       }
     }
-    static const std::string hemispheres_;
-    static const std::string signs_;
-    static const std::string digits_;
-    static const std::string dmsindicators_;
-    static const std::string components_[3];
+    static const char* const hemispheres_;
+    static const char* const signs_;
+    static const char* const digits_;
+    static const char* const dmsindicators_;
+    static const char* const components_[3];
     static Math::real NumMatch(const std::string& s);
     static Math::real InternalDecode(const std::string& dmsa, flag& ind);
     DMS();                      // Disable constructor
diff --git a/include/GeographicLib/Ellipsoid.hpp b/include/GeographicLib/Ellipsoid.hpp
index 530ade5..6bf6836 100644
--- a/include/GeographicLib/Ellipsoid.hpp
+++ b/include/GeographicLib/Ellipsoid.hpp
@@ -2,7 +2,7 @@
  * \file Ellipsoid.hpp
  * \brief Header for GeographicLib::Ellipsoid class
  *
- * Copyright (c) Charles Karney (2012-2015) <charles at karney.com> and licensed
+ * Copyright (c) Charles Karney (2012-2017) <charles at karney.com> and licensed
  * under the MIT/X11 License.  For more information, see
  * https://geographiclib.sourceforge.io/
  **********************************************************************/
@@ -505,8 +505,10 @@ namespace GeographicLib {
      * <i>e''</i> <sup>2</sup> should lie in (−1, 1).
      * The returned value \e f lies in (−∞, 1).
      **********************************************************************/
-    static Math::real ThirdEccentricitySqToFlattening(real epp2)
-    { return 2 * epp2 / (sqrt((1 - epp2) * (1 + epp2)) + 1 + epp2); }
+    static Math::real ThirdEccentricitySqToFlattening(real epp2) {
+      using std::sqrt;
+      return 2 * epp2 / (sqrt((1 - epp2) * (1 + epp2)) + 1 + epp2);
+    }
 
     /**
      * @param[in] f = (\e a − \e b) / \e a, the flattening.
diff --git a/include/GeographicLib/EllipticFunction.hpp b/include/GeographicLib/EllipticFunction.hpp
index ff89b2b..0ef37a6 100644
--- a/include/GeographicLib/EllipticFunction.hpp
+++ b/include/GeographicLib/EllipticFunction.hpp
@@ -62,7 +62,8 @@ namespace GeographicLib {
   class GEOGRAPHICLIB_EXPORT EllipticFunction {
   private:
     typedef Math::real real;
-    enum { num_ = 13 }; // Max depth required for sncndn.  Probably 5 is enough.
+
+    enum { num_ = 13 }; // Max depth required for sncndn; probably 5 is enough.
     real _k2, _kp2, _alpha2, _alphap2, _eps;
     real _Kc, _Ec, _Dc, _Pic, _Gc, _Hc;
   public:
@@ -207,7 +208,8 @@ namespace GeographicLib {
      *
      * \e D(\e k) is defined in http://dlmf.nist.gov/19.2.E6
      * \f[
-     *   D(k) = \int_0^{\pi/2} \frac{\sin^2\phi}{\sqrt{1-k^2\sin^2\phi}}\,d\phi.
+     *   D(k) =
+     *   \int_0^{\pi/2} \frac{\sin^2\phi}{\sqrt{1-k^2\sin^2\phi}}\,d\phi.
      * \f]
      **********************************************************************/
     Math::real D() const { return _Dc; }
@@ -378,7 +380,8 @@ namespace GeographicLib {
      *   \frac1{\alpha^2} F(\phi, k) +
      *        \biggl(1 - \frac1{\alpha^2}\biggr) \Pi(\phi, \alpha^2, k) \\
      *   &= \int_0^\phi
-     *     \frac{\cos^2\theta}{(1-\alpha^2\sin^2\theta)\sqrt{1-k^2\sin^2\theta}}
+     *     \frac{\cos^2\theta}
+     *          {(1-\alpha^2\sin^2\theta)\sqrt{1-k^2\sin^2\theta}}
      *     \,d\theta.
      *   \end{align}
      * \f]
@@ -669,7 +672,8 @@ namespace GeographicLib {
      *
      * <i>R</i><sub><i>J</i></sub> is defined in http://dlmf.nist.gov/19.16.E2
      * \f[ R_J(x, y, z, p) = \frac32
-     *       \int_0^\infty[(t + x) (t + y) (t + z)]^{-1/2} (t + p)^{-1}\, dt \f]
+     *       \int_0^\infty
+     *       [(t + x) (t + y) (t + z)]^{-1/2} (t + p)^{-1}\, dt \f]
      **********************************************************************/
     static real RJ(real x, real y, real z, real p);
 
diff --git a/include/GeographicLib/GARS.hpp b/include/GeographicLib/GARS.hpp
index 375b67e..b66b3b2 100644
--- a/include/GeographicLib/GARS.hpp
+++ b/include/GeographicLib/GARS.hpp
@@ -2,8 +2,8 @@
  * \file GARS.hpp
  * \brief Header for GeographicLib::GARS class
  *
- * Copyright (c) Charles Karney (2015) <charles at karney.com> and licensed under
- * the MIT/X11 License.  For more information, see
+ * Copyright (c) Charles Karney (2015-2017) <charles at karney.com> and licensed
+ * under the MIT/X11 License.  For more information, see
  * https://geographiclib.sourceforge.io/
  **********************************************************************/
 
@@ -38,8 +38,8 @@ namespace GeographicLib {
   class GEOGRAPHICLIB_EXPORT GARS {
   private:
     typedef Math::real real;
-    static const std::string digits_;
-    static const std::string letters_;
+    static const char* const digits_;
+    static const char* const letters_;
     enum {
       lonorig_ = -180,          // Origin for longitude
       latorig_ = -90,           // Origin for latitude
diff --git a/include/GeographicLib/GeoCoords.hpp b/include/GeographicLib/GeoCoords.hpp
index 18cfd99..ce0c8f7 100644
--- a/include/GeographicLib/GeoCoords.hpp
+++ b/include/GeographicLib/GeoCoords.hpp
@@ -62,7 +62,8 @@ namespace GeographicLib {
       _alt_k = _k;
       _alt_zone = _zone;
     }
-    static void UTMUPSString(int zone, bool northp, real easting, real northing,
+    static void UTMUPSString(int zone, bool northp,
+                             real easting, real northing,
                              int prec, bool abbrev, std::string& utm);
     void FixHemisphere();
   public:
@@ -499,7 +500,8 @@ namespace GeographicLib {
      * @return UTM/UPS string representation: zone designator, easting, and
      *   northing.
      **********************************************************************/
-    std::string AltUTMUPSRepresentation(int prec = 0, bool abbrev = true) const;
+    std::string AltUTMUPSRepresentation(int prec = 0, bool abbrev = true)
+      const;
 
     /**
      * UTM/UPS string for the alternate zone, with hemisphere override.
diff --git a/include/GeographicLib/Geodesic.hpp b/include/GeographicLib/Geodesic.hpp
index 7870ab9..488440b 100644
--- a/include/GeographicLib/Geodesic.hpp
+++ b/include/GeographicLib/Geodesic.hpp
@@ -156,7 +156,8 @@ namespace GeographicLib {
    *   J. Geodesy <b>87</b>, 43--55 (2013);
    *   DOI: <a href="https://doi.org/10.1007/s00190-012-0578-z">
    *   10.1007/s00190-012-0578-z</a>;
-   *   addenda: <a href="https://geographiclib.sourceforge.io/geod-addenda.html">
+   *   addenda:
+   *   <a href="https://geographiclib.sourceforge.io/geod-addenda.html">
    *   geod-addenda.html</a>.
    * .
    * For more information on geodesics see \ref geodesic.
diff --git a/include/GeographicLib/GeodesicExact.hpp b/include/GeographicLib/GeodesicExact.hpp
index 770aed5..0130ccb 100644
--- a/include/GeographicLib/GeodesicExact.hpp
+++ b/include/GeographicLib/GeodesicExact.hpp
@@ -139,7 +139,7 @@ namespace GeographicLib {
     // the rest.  This choice avoids double rounding with doubles and higher
     // precision types.  float coefficients will suffer double rounding;
     // however the accuracy is already lousy for floats.
-    static Math::real inline reale(long long hi, long long lo) {
+    static Math::real reale(long long hi, long long lo) {
       using std::ldexp;
       return ldexp(real(hi), 52) + lo;
     }
@@ -557,9 +557,10 @@ namespace GeographicLib {
      * longitude fixed, writing \e lat = ±(90° − ε),
      * and taking the limit ε → 0+.
      *
-     * The following functions are overloaded versions of GeodesicExact::Inverse
-     * which omit some of the output parameters.  Note, however, that the arc
-     * length is always computed and returned as the function value.
+     * The following functions are overloaded versions of
+     * GeodesicExact::Inverse which omit some of the output parameters.  Note,
+     * however, that the arc length is always computed and returned as the
+     * function value.
      **********************************************************************/
     Math::real Inverse(real lat1, real lon1, real lat2, real lon2,
                        real& s12, real& azi1, real& azi2, real& m12,
@@ -725,8 +726,8 @@ namespace GeographicLib {
      * fixed, writing \e lat1 = ±(90 − ε), and taking the
      * limit ε → 0+.
      **********************************************************************/
-    GeodesicLineExact Line(real lat1, real lon1, real azi1, unsigned caps = ALL)
-      const;
+    GeodesicLineExact Line(real lat1, real lon1, real azi1,
+                           unsigned caps = ALL) const;
 
     /**
      * Define a GeodesicLineExact in terms of the inverse geodesic problem.
@@ -850,8 +851,8 @@ namespace GeographicLib {
     ///@}
 
     /**
-     * A global instantiation of GeodesicExact with the parameters for the WGS84
-     * ellipsoid.
+     * A global instantiation of GeodesicExact with the parameters for the
+     * WGS84 ellipsoid.
      **********************************************************************/
     static const GeodesicExact& WGS84();
 
diff --git a/include/GeographicLib/GeodesicLineExact.hpp b/include/GeographicLib/GeodesicLineExact.hpp
index 8073dfd..c947fe3 100644
--- a/include/GeographicLib/GeodesicLineExact.hpp
+++ b/include/GeographicLib/GeodesicLineExact.hpp
@@ -165,8 +165,8 @@ namespace GeographicLib {
      * - \e caps |= GeodesicLineExact::LATITUDE for the latitude \e lat2; this
      *   is added automatically;
      * - \e caps |= GeodesicLineExact::LONGITUDE for the latitude \e lon2;
-     * - \e caps |= GeodesicLineExact::AZIMUTH for the latitude \e azi2; this is
-     *   added automatically;
+     * - \e caps |= GeodesicLineExact::AZIMUTH for the latitude \e azi2; this
+     *   is added automatically;
      * - \e caps |= GeodesicLineExact::DISTANCE for the distance \e s12;
      * - \e caps |= GeodesicLineExact::REDUCEDLENGTH for the reduced length \e
          m12;
diff --git a/include/GeographicLib/Geohash.hpp b/include/GeographicLib/Geohash.hpp
index 888549e..d7d1d8a 100644
--- a/include/GeographicLib/Geohash.hpp
+++ b/include/GeographicLib/Geohash.hpp
@@ -2,7 +2,7 @@
  * \file Geohash.hpp
  * \brief Header for GeographicLib::Geohash class
  *
- * Copyright (c) Charles Karney (2012-2015) <charles at karney.com> and licensed
+ * Copyright (c) Charles Karney (2012-2017) <charles at karney.com> and licensed
  * under the MIT/X11 License.  For more information, see
  * https://geographiclib.sourceforge.io/
  **********************************************************************/
@@ -42,8 +42,8 @@ namespace GeographicLib {
     typedef Math::real real;
     static const int maxlen_ = 18;
     static const unsigned long long mask_ = 1ULL << 45;
-    static const std::string lcdigits_;
-    static const std::string ucdigits_;
+    static const char* const lcdigits_;
+    static const char* const ucdigits_;
     Geohash();                     // Disable constructor
 
   public:
@@ -97,9 +97,9 @@ namespace GeographicLib {
      * Internally, \e len is first put in the range [0, 18].
      **********************************************************************/
     static Math::real LatitudeResolution(int len) {
-      using std::pow;
+      using std::ldexp;
       len = (std::max)(0, (std::min)(int(maxlen_), len));
-      return 180 * pow(real(0.5), 5 * len / 2);
+      return ldexp(real(180), -(5 * len / 2));
     }
 
     /**
@@ -111,9 +111,9 @@ namespace GeographicLib {
      * Internally, \e len is first put in the range [0, 18].
      **********************************************************************/
     static Math::real LongitudeResolution(int len) {
-      using std::pow;
+      using std::ldexp;
       len = (std::max)(0, (std::min)(int(maxlen_), len));
-      return 360 * pow(real(0.5), 5 * len - 5 * len / 2);
+      return ldexp(real(360), -(5 * len - 5 * len / 2));
     }
 
     /**
diff --git a/include/GeographicLib/Geoid.hpp b/include/GeographicLib/Geoid.hpp
index 38634be..7572367 100644
--- a/include/GeographicLib/Geoid.hpp
+++ b/include/GeographicLib/Geoid.hpp
@@ -226,9 +226,11 @@ namespace GeographicLib {
     /**
      * Set up a cache.
      *
-     * @param[in] south latitude (degrees) of the south edge of the cached area.
+     * @param[in] south latitude (degrees) of the south edge of the cached
+     *   area.
      * @param[in] west longitude (degrees) of the west edge of the cached area.
-     * @param[in] north latitude (degrees) of the north edge of the cached area.
+     * @param[in] north latitude (degrees) of the north edge of the cached
+     *   area.
      * @param[in] east longitude (degrees) of the east edge of the cached area.
      * @exception GeographicErr if the memory necessary for caching the data
      *   can't be allocated (in this case, you will have no cache and can try
@@ -277,7 +279,8 @@ namespace GeographicLib {
      * @param[in] lat latitude of the point (degrees).
      * @param[in] lon longitude of the point (degrees).
      * @exception GeographicErr if there's a problem reading the data; this
-     *   never happens if (\e lat, \e lon) is within a successfully cached area.
+     *   never happens if (\e lat, \e lon) is within a successfully cached
+     *   area.
      * @return the height of the geoid above the ellipsoid (meters).
      *
      * The latitude should be in [−90°, 90°].
@@ -298,7 +301,8 @@ namespace GeographicLib {
      *   geoid to a height above the ellipsoid; Geoid::ELLIPSOIDTOGEOID means
      *   convert a height above the ellipsoid to a height above the geoid.
      * @exception GeographicErr if there's a problem reading the data; this
-     *   never happens if (\e lat, \e lon) is within a successfully cached area.
+     *   never happens if (\e lat, \e lon) is within a successfully cached
+     *   area.
      * @return converted height (meters).
      **********************************************************************/
     Math::real ConvertHeight(real lat, real lon, real h,
diff --git a/include/GeographicLib/Georef.hpp b/include/GeographicLib/Georef.hpp
index eef6d88..726b5d5 100644
--- a/include/GeographicLib/Georef.hpp
+++ b/include/GeographicLib/Georef.hpp
@@ -2,8 +2,8 @@
  * \file Georef.hpp
  * \brief Header for GeographicLib::Georef class
  *
- * Copyright (c) Charles Karney (2015) <charles at karney.com> and licensed under
- * the MIT/X11 License.  For more information, see
+ * Copyright (c) Charles Karney (2015-2017) <charles at karney.com> and licensed
+ * under the MIT/X11 License.  For more information, see
  * https://geographiclib.sourceforge.io/
  **********************************************************************/
 
@@ -38,10 +38,10 @@ namespace GeographicLib {
   class GEOGRAPHICLIB_EXPORT Georef {
   private:
     typedef Math::real real;
-    static const std::string digits_;
-    static const std::string lontile_;
-    static const std::string lattile_;
-    static const std::string degrees_;
+    static const char* const digits_;
+    static const char* const lontile_;
+    static const char* const lattile_;
+    static const char* const degrees_;
     enum {
       tile_ = 15,               // The size of tile in degrees
       lonorig_ = -180,          // Origin for longitude
@@ -125,7 +125,8 @@ namespace GeographicLib {
         using std::pow;
         // Treat prec = 1 as 2.
         prec = (std::max)(2, (std::min)(int(maxprec_), prec));
-        return 1/(60 * pow(real(base_), prec - 2));
+        // Need extra real because, since C++11, pow(float, int) returns double
+        return 1/(60 * real(pow(real(base_), prec - 2)));
       }
     }
 
diff --git a/include/GeographicLib/Gnomonic.hpp b/include/GeographicLib/Gnomonic.hpp
index 1fcefa6..6bc2d22 100644
--- a/include/GeographicLib/Gnomonic.hpp
+++ b/include/GeographicLib/Gnomonic.hpp
@@ -27,7 +27,8 @@ namespace GeographicLib {
    *   J. Geodesy <b>87</b>, 43--55 (2013);
    *   DOI: <a href="https://doi.org/10.1007/s00190-012-0578-z">
    *   10.1007/s00190-012-0578-z</a>;
-   *   addenda: <a href="https://geographiclib.sourceforge.io/geod-addenda.html">
+   *   addenda:
+   *   <a href="https://geographiclib.sourceforge.io/geod-addenda.html">
    *   geod-addenda.html</a>.
    * .
    * The projection of \e P is defined as follows: compute the geodesic line
diff --git a/include/GeographicLib/GravityModel.hpp b/include/GeographicLib/GravityModel.hpp
index a0dd9fd..fd867c7 100644
--- a/include/GeographicLib/GravityModel.hpp
+++ b/include/GeographicLib/GravityModel.hpp
@@ -32,7 +32,7 @@ namespace GeographicLib {
    * models treat only the gravitational field exterior to the mass of the
    * earth.  When computing the field at points near (but above) the surface of
    * the earth a small correction can be applied to account for the mass of the
-   * atomsphere above the point in question; see \ref gravityatmos.
+   * atmosphere above the point in question; see \ref gravityatmos.
    * Determining the height of the geoid above the ellipsoid entails correcting
    * for the mass of the earth above the geoid.  The egm96 and egm2008 include
    * separate correction terms to account for this mass.
diff --git a/include/GeographicLib/LambertConformalConic.hpp b/include/GeographicLib/LambertConformalConic.hpp
index e9ae6dd..3dd7b99 100644
--- a/include/GeographicLib/LambertConformalConic.hpp
+++ b/include/GeographicLib/LambertConformalConic.hpp
@@ -2,7 +2,7 @@
  * \file LambertConformalConic.hpp
  * \brief Header for GeographicLib::LambertConformalConic class
  *
- * Copyright (c) Charles Karney (2010-2016) <charles at karney.com> and licensed
+ * Copyright (c) Charles Karney (2010-2017) <charles at karney.com> and licensed
  * under the MIT/X11 License.  For more information, see
  * https://geographiclib.sourceforge.io/
  **********************************************************************/
@@ -42,7 +42,13 @@ namespace GeographicLib {
    * parallels where one is a pole is singular and is disallowed.  The central
    * meridian (which is a trivial shift of the longitude) is specified as the
    * \e lon0 argument of the LambertConformalConic::Forward and
-   * LambertConformalConic::Reverse functions.  There is no provision in this
+   * LambertConformalConic::Reverse functions.
+   *
+   * This class also returns the meridian convergence \e gamma and scale \e k.
+   * The meridian convergence is the bearing of grid north (the \e y axis)
+   * measured clockwise from true north.
+   *
+   * There is no provision in this
    * class for specifying a false easting or false northing or a different
    * latitude of origin.  However these are can be simply included by the
    * calling function.  For example the Pennsylvania South state coordinate
@@ -62,7 +68,7 @@ namespace GeographicLib {
     real _sign, _n, _nc, _t0nm1, _scale, _lat0, _k0;
     real _scbet0, _tchi0, _scchi0, _psi0, _nrho0, _drhomax;
     static const int numit_ = 5;
-    static inline real hyp(real x) { return Math::hypot(real(1), x); }
+    static real hyp(real x) { return Math::hypot(real(1), x); }
     // Divided differences
     // Definition: Df(x,y) = (f(x)-f(y))/(x-y)
     // See:
@@ -80,53 +86,53 @@ namespace GeographicLib {
     //                = Df(x,y)*(g(x)+g(y))/2 + Dg(x,y)*(f(x)+f(y))/2
     //
     // hyp(x) = sqrt(1+x^2): Dhyp(x,y) = (x+y)/(hyp(x)+hyp(y))
-    static inline real Dhyp(real x, real y, real hx, real hy)
+    static real Dhyp(real x, real y, real hx, real hy)
     // hx = hyp(x)
     { return (x + y) / (hx + hy); }
     // sn(x) = x/sqrt(1+x^2): Dsn(x,y) = (x+y)/((sn(x)+sn(y))*(1+x^2)*(1+y^2))
-    static inline real Dsn(real x, real y, real sx, real sy) {
+    static real Dsn(real x, real y, real sx, real sy) {
       // sx = x/hyp(x)
       real t = x * y;
       return t > 0 ? (x + y) * Math::sq( (sx * sy)/t ) / (sx + sy) :
         (x - y != 0 ? (sx - sy) / (x - y) : 1);
     }
     // Dlog1p(x,y) = log1p((x-y)/(1+y))/(x-y)
-    static inline real Dlog1p(real x, real y) {
+    static real Dlog1p(real x, real y) {
       real t = x - y; if (t < 0) { t = -t; y = x; }
-      return t ? Math::log1p(t / (1 + y)) / t : 1 / (1 + x);
+      return t != 0 ? Math::log1p(t / (1 + y)) / t : 1 / (1 + x);
     }
     // Dexp(x,y) = exp((x+y)/2) * 2*sinh((x-y)/2)/(x-y)
-    static inline real Dexp(real x, real y) {
+    static real Dexp(real x, real y) {
       using std::sinh; using std::exp;
       real t = (x - y)/2;
-      return (t ? sinh(t)/t : 1) * exp((x + y)/2);
+      return (t != 0 ? sinh(t)/t : 1) * exp((x + y)/2);
     }
     // Dsinh(x,y) = 2*sinh((x-y)/2)/(x-y) * cosh((x+y)/2)
     //   cosh((x+y)/2) = (c+sinh(x)*sinh(y)/c)/2
     //   c=sqrt((1+cosh(x))*(1+cosh(y)))
     //   cosh((x+y)/2) = sqrt( (sinh(x)*sinh(y) + cosh(x)*cosh(y) + 1)/2 )
-    static inline real Dsinh(real x, real y, real sx, real sy, real cx, real cy)
+    static real Dsinh(real x, real y, real sx, real sy, real cx, real cy)
     // sx = sinh(x), cx = cosh(x)
     {
       // real t = (x - y)/2, c = sqrt((1 + cx) * (1 + cy));
       // return (t ? sinh(t)/t : real(1)) * (c + sx * sy / c) /2;
       using std::sinh; using std::sqrt;
       real t = (x - y)/2;
-      return (t ? sinh(t)/t : 1) * sqrt((sx * sy + cx * cy + 1) /2);
+      return (t != 0 ? sinh(t)/t : 1) * sqrt((sx * sy + cx * cy + 1) /2);
     }
     // Dasinh(x,y) = asinh((x-y)*(x+y)/(x*sqrt(1+y^2)+y*sqrt(1+x^2)))/(x-y)
     //             = asinh((x*sqrt(1+y^2)-y*sqrt(1+x^2)))/(x-y)
-    static inline real Dasinh(real x, real y, real hx, real hy) {
+    static real Dasinh(real x, real y, real hx, real hy) {
       // hx = hyp(x)
       real t = x - y;
-      return t ?
+      return t != 0 ?
         Math::asinh(x*y > 0 ? t * (x+y) / (x*hy + y*hx) : x*hy - y*hx) / t :
         1/hx;
     }
     // Deatanhe(x,y) = eatanhe((x-y)/(1-e^2*x*y))/(x-y)
-    inline real Deatanhe(real x, real y) const {
+    real Deatanhe(real x, real y) const {
       real t = x - y, d = 1 - _e2 * x * y;
-      return t ? Math::eatanhe(t / d, _es) / t : _e2 / d;
+      return t != 0 ? Math::eatanhe(t / d, _es) / t : _e2 / d;
     }
     void Init(real sphi1, real cphi1, real sphi2, real cphi2, real k1);
   public:
diff --git a/include/GeographicLib/MGRS.hpp b/include/GeographicLib/MGRS.hpp
index 1e9bd12..88db8dc 100644
--- a/include/GeographicLib/MGRS.hpp
+++ b/include/GeographicLib/MGRS.hpp
@@ -2,7 +2,7 @@
  * \file MGRS.hpp
  * \brief Header for GeographicLib::MGRS class
  *
- * Copyright (c) Charles Karney (2008-2015) <charles at karney.com> and licensed
+ * Copyright (c) Charles Karney (2008-2017) <charles at karney.com> and licensed
  * under the MIT/X11 License.  For more information, see
  * https://geographiclib.sourceforge.io/
  **********************************************************************/
@@ -74,14 +74,14 @@ namespace GeographicLib {
   class GEOGRAPHICLIB_EXPORT MGRS {
   private:
     typedef Math::real real;
-    static const std::string hemispheres_;
-    static const std::string utmcols_[3];
-    static const std::string utmrow_;
-    static const std::string upscols_[4];
-    static const std::string upsrows_[2];
-    static const std::string latband_;
-    static const std::string upsband_;
-    static const std::string digits_;
+    static const char* const hemispheres_;
+    static const char* const utmcols_[3];
+    static const char* const utmrow_;
+    static const char* const upscols_[4];
+    static const char* const upsrows_[2];
+    static const char* const latband_;
+    static const char* const upsband_;
+    static const char* const digits_;
 
     static const int mineasting_[4];
     static const int maxeasting_[4];
diff --git a/include/GeographicLib/MagneticCircle.hpp b/include/GeographicLib/MagneticCircle.hpp
index 11196ae..041c4b4 100644
--- a/include/GeographicLib/MagneticCircle.hpp
+++ b/include/GeographicLib/MagneticCircle.hpp
@@ -106,7 +106,8 @@ namespace GeographicLib {
      *
      * @param[in] lon longitude of the point (degrees).
      * @param[out] Bx the easterly component of the magnetic field (nanotesla).
-     * @param[out] By the northerly component of the magnetic field (nanotesla).
+     * @param[out] By the northerly component of the magnetic field
+     *   (nanotesla).
      * @param[out] Bz the vertical (up) component of the magnetic field
      *   (nanotesla).
      **********************************************************************/
@@ -121,7 +122,8 @@ namespace GeographicLib {
      *
      * @param[in] lon longitude of the point (degrees).
      * @param[out] Bx the easterly component of the magnetic field (nanotesla).
-     * @param[out] By the northerly component of the magnetic field (nanotesla).
+     * @param[out] By the northerly component of the magnetic field
+     *   (nanotesla).
      * @param[out] Bz the vertical (up) component of the magnetic field
      *   (nanotesla).
      * @param[out] Bxt the rate of change of \e Bx (nT/yr).
diff --git a/include/GeographicLib/MagneticModel.hpp b/include/GeographicLib/MagneticModel.hpp
index 44748b4..44de875 100644
--- a/include/GeographicLib/MagneticModel.hpp
+++ b/include/GeographicLib/MagneticModel.hpp
@@ -40,18 +40,24 @@ namespace GeographicLib {
    * - General information:
    *   - http://geomag.org/models/index.html
    * - WMM2010:
-   *   - http://ngdc.noaa.gov/geomag/WMM/DoDWMM.shtml
-   *   - http://ngdc.noaa.gov/geomag/WMM/data/WMM2010/WMM2010COF.zip
+   *   - https://ngdc.noaa.gov/geomag/WMM/DoDWMM.shtml
+   *   - https://ngdc.noaa.gov/geomag/WMM/data/WMM2010/WMM2010COF.zip
    * - WMM2015:
-   *   - http://ngdc.noaa.gov/geomag/WMM/DoDWMM.shtml
-   *   - http://ngdc.noaa.gov/geomag/WMM/data/WMM2015/WMM2015COF.zip
+   *   - https://ngdc.noaa.gov/geomag/WMM/DoDWMM.shtml
+   *   - https://ngdc.noaa.gov/geomag/WMM/data/WMM2015/WMM2015COF.zip
    * - IGRF11:
-   *   - http://ngdc.noaa.gov/IAGA/vmod/igrf.html
-   *   - http://ngdc.noaa.gov/IAGA/vmod/igrf11coeffs.txt
-   *   - http://ngdc.noaa.gov/IAGA/vmod/geomag70_linux.tar.gz
+   *   - https://ngdc.noaa.gov/IAGA/vmod/igrf.html
+   *   - https://ngdc.noaa.gov/IAGA/vmod/igrf11coeffs.txt
+   *   - https://ngdc.noaa.gov/IAGA/vmod/geomag70_linux.tar.gz
    * - EMM2010:
-   *   - http://ngdc.noaa.gov/geomag/EMM/index.html
-   *   - http://ngdc.noaa.gov/geomag/EMM/data/geomag/EMM2010_Sph_Windows_Linux.zip
+   *   - https://ngdc.noaa.gov/geomag/EMM/index.html
+   *   - https://ngdc.noaa.gov/geomag/EMM/data/geomag/EMM2010_Sph_Windows_Linux.zip
+   * - EMM2015:
+   *   - https://ngdc.noaa.gov/geomag/EMM/index.html
+   *   - https://www.ngdc.noaa.gov/geomag/EMM/data/geomag/EMM2015_Sph_Linux.zip
+   * - EMM2017:
+   *   - https://ngdc.noaa.gov/geomag/EMM/index.html
+   *   - https://www.ngdc.noaa.gov/geomag/EMM/data/geomag/EMM2017_Sph_Linux.zip
    *
    * Example of use:
    * \include example-MagneticModel.cpp
@@ -126,7 +132,8 @@ namespace GeographicLib {
      * @param[in] lon longitude of the point (degrees).
      * @param[in] h the height of the point above the ellipsoid (meters).
      * @param[out] Bx the easterly component of the magnetic field (nanotesla).
-     * @param[out] By the northerly component of the magnetic field (nanotesla).
+     * @param[out] By the northerly component of the magnetic field
+     *   (nanotesla).
      * @param[out] Bz the vertical (up) component of the magnetic field
      *   (nanotesla).
      **********************************************************************/
@@ -145,7 +152,8 @@ namespace GeographicLib {
      * @param[in] lon longitude of the point (degrees).
      * @param[in] h the height of the point above the ellipsoid (meters).
      * @param[out] Bx the easterly component of the magnetic field (nanotesla).
-     * @param[out] By the northerly component of the magnetic field (nanotesla).
+     * @param[out] By the northerly component of the magnetic field
+     *   (nanotesla).
      * @param[out] Bz the vertical (up) component of the magnetic field
      *   (nanotesla).
      * @param[out] Bxt the rate of change of \e Bx (nT/yr).
diff --git a/include/GeographicLib/Math.hpp b/include/GeographicLib/Math.hpp
index 8ca82f4..48f1d7e 100644
--- a/include/GeographicLib/Math.hpp
+++ b/include/GeographicLib/Math.hpp
@@ -142,7 +142,7 @@ namespace GeographicLib {
     /**
      * @return the number of bits of precision in a real number.
      **********************************************************************/
-    static inline int digits() {
+    static int digits() {
 #if GEOGRAPHICLIB_PRECISION != 5
       return std::numeric_limits<real>::digits;
 #else
@@ -160,7 +160,7 @@ namespace GeographicLib {
      * Utility::set_digits for caveats about when this routine should be
      * called.
      **********************************************************************/
-    static inline int set_digits(int ndigits) {
+    static int set_digits(int ndigits) {
 #if GEOGRAPHICLIB_PRECISION != 5
       (void)ndigits;
 #else
@@ -172,7 +172,7 @@ namespace GeographicLib {
     /**
      * @return the number of decimal digits of precision in a real number.
      **********************************************************************/
-    static inline int digits10() {
+    static int digits10() {
 #if GEOGRAPHICLIB_PRECISION != 5
       return std::numeric_limits<real>::digits10;
 #else
@@ -184,7 +184,7 @@ namespace GeographicLib {
      * Number of additional decimal digits of precision for real relative to
      * double (0 for float).
      **********************************************************************/
-    static inline int extra_digits() {
+    static int extra_digits() {
       return
         digits10() > std::numeric_limits<double>::digits10 ?
         digits10() - std::numeric_limits<double>::digits10 : 0;
@@ -199,7 +199,7 @@ namespace GeographicLib {
      * @tparam T the type of the returned value.
      * @return π.
      **********************************************************************/
-    template<typename T> static inline T pi() {
+    template<typename T> static T pi() {
       using std::atan2;
       static const T pi = atan2(T(0), T(-1));
       return pi;
@@ -207,20 +207,20 @@ namespace GeographicLib {
     /**
      * A synonym for pi<real>().
      **********************************************************************/
-    static inline real pi() { return pi<real>(); }
+    static real pi() { return pi<real>(); }
 
     /**
      * @tparam T the type of the returned value.
      * @return the number of radians in a degree.
      **********************************************************************/
-    template<typename T> static inline T degree() {
+    template<typename T> static T degree() {
       static const T degree = pi<T>() / 180;
       return degree;
     }
     /**
      * A synonym for degree<real>().
      **********************************************************************/
-    static inline real degree() { return degree<real>(); }
+    static real degree() { return degree<real>(); }
 
     /**
      * Square a number.
@@ -229,7 +229,7 @@ namespace GeographicLib {
      * @param[in] x
      * @return <i>x</i><sup>2</sup>.
      **********************************************************************/
-    template<typename T> static inline T sq(T x)
+    template<typename T> static T sq(T x)
     { return x * x; }
 
     /**
@@ -240,7 +240,7 @@ namespace GeographicLib {
      * @param[in] y
      * @return sqrt(<i>x</i><sup>2</sup> + <i>y</i><sup>2</sup>).
      **********************************************************************/
-    template<typename T> static inline T hypot(T x, T y) {
+    template<typename T> static T hypot(T x, T y) {
 #if GEOGRAPHICLIB_CXX11_MATH
       using std::hypot; return hypot(x, y);
 #else
@@ -262,7 +262,7 @@ namespace GeographicLib {
      * @param[in] x
      * @return exp(\e x) − 1.
      **********************************************************************/
-    template<typename T> static inline T expm1(T x) {
+    template<typename T> static T expm1(T x) {
 #if GEOGRAPHICLIB_CXX11_MATH
       using std::expm1; return expm1(x);
 #else
@@ -285,7 +285,7 @@ namespace GeographicLib {
      * @param[in] x
      * @return log(1 + \e x).
      **********************************************************************/
-    template<typename T> static inline T log1p(T x) {
+    template<typename T> static T log1p(T x) {
 #if GEOGRAPHICLIB_CXX11_MATH
       using std::log1p; return log1p(x);
 #else
@@ -308,7 +308,7 @@ namespace GeographicLib {
      * @param[in] x
      * @return asinh(\e x).
      **********************************************************************/
-    template<typename T> static inline T asinh(T x) {
+    template<typename T> static T asinh(T x) {
 #if GEOGRAPHICLIB_CXX11_MATH
       using std::asinh; return asinh(x);
 #else
@@ -325,7 +325,7 @@ namespace GeographicLib {
      * @param[in] x
      * @return atanh(\e x).
      **********************************************************************/
-    template<typename T> static inline T atanh(T x) {
+    template<typename T> static T atanh(T x) {
 #if GEOGRAPHICLIB_CXX11_MATH
       using std::atanh; return atanh(x);
 #else
@@ -342,7 +342,7 @@ namespace GeographicLib {
      * @param[in] x
      * @return the real cube root of \e x.
      **********************************************************************/
-    template<typename T> static inline T cbrt(T x) {
+    template<typename T> static T cbrt(T x) {
 #if GEOGRAPHICLIB_CXX11_MATH
       using std::cbrt; return cbrt(x);
 #else
@@ -366,7 +366,7 @@ namespace GeographicLib {
      * made to improve on the result of a rounded multiplication followed by a
      * rounded addition.
      **********************************************************************/
-    template<typename T> static inline T fma(T x, T y, T z) {
+    template<typename T> static T fma(T x, T y, T z) {
 #if GEOGRAPHICLIB_CXX11_MATH
       using std::fma; return fma(x, y, z);
 #else
@@ -381,7 +381,7 @@ namespace GeographicLib {
      * @param[in,out] x on output set to <i>x</i>/hypot(<i>x</i>, <i>y</i>).
      * @param[in,out] y on output set to <i>y</i>/hypot(<i>x</i>, <i>y</i>).
      **********************************************************************/
-    template<typename T> static inline void norm(T& x, T& y)
+    template<typename T> static void norm(T& x, T& y)
     { T h = hypot(x, y); x /= h; y /= h; }
 
     /**
@@ -396,7 +396,7 @@ namespace GeographicLib {
      * See D. E. Knuth, TAOCP, Vol 2, 4.2.2, Theorem B.  (Note that \e t can be
      * the same as one of the first two arguments.)
      **********************************************************************/
-    template<typename T> static inline T sum(T u, T v, T& t) {
+    template<typename T> static T sum(T u, T v, T& t) {
       GEOGRAPHICLIB_VOLATILE T s = u + v;
       GEOGRAPHICLIB_VOLATILE T up = s - v;
       GEOGRAPHICLIB_VOLATILE T vpp = s - up;
@@ -422,7 +422,10 @@ namespace GeographicLib {
      * Return 0 if \e N < 0.  Return <i>p</i><sub>0</sub>, if \e N = 0 (even
      * if \e x is infinite or a nan).  The evaluation uses Horner's method.
      **********************************************************************/
-    template<typename T> static inline T polyval(int N, const T p[], T x)
+    template<typename T> static T polyval(int N, const T p[], T x)
+    // This used to employ Math::fma; but that's too slow and it seemed not to
+    // improve the accuracy noticeably.  This might change when there's direct
+    // hardware support for fma.
     { T y = N < 0 ? 0 : *p++; while (--N >= 0) y = y * x + *p++; return y; }
 
     /**
@@ -434,7 +437,7 @@ namespace GeographicLib {
      *
      * The range of \e x is unrestricted.
      **********************************************************************/
-    template<typename T> static inline T AngNormalize(T x) {
+    template<typename T> static T AngNormalize(T x) {
 #if GEOGRAPHICLIB_CXX11_MATH && GEOGRAPHICLIB_PRECISION != 4
       using std::remainder;
       x = remainder(x, T(360)); return x != -180 ? x : 180;
@@ -461,7 +464,7 @@ namespace GeographicLib {
      * @return x if it is in the range [−90°, 90°], otherwise
      *   return NaN.
      **********************************************************************/
-    template<typename T> static inline T LatFix(T x)
+    template<typename T> static T LatFix(T x)
     { using std::abs; return abs(x) > 90 ? NaN<T>() : x; }
 
     /**
@@ -480,7 +483,7 @@ namespace GeographicLib {
      * error.  If \e d = −180, then \e e > 0; If \e d = 180, then \e e
      * ≤ 0.
      **********************************************************************/
-    template<typename T> static inline T AngDiff(T x, T y, T& e) {
+    template<typename T> static T AngDiff(T x, T y, T& e) {
 #if GEOGRAPHICLIB_CXX11_MATH && GEOGRAPHICLIB_PRECISION != 4
       using std::remainder;
       T t, d = AngNormalize(sum(remainder(-x, T(360)),
@@ -511,7 +514,7 @@ namespace GeographicLib {
      * this prescription allows −180° to be returned (e.g., if \e x
      * is tiny and negative and \e y = 180°).
      **********************************************************************/
-    template<typename T> static inline T AngDiff(T x, T y)
+    template<typename T> static T AngDiff(T x, T y)
     { T e; return AngDiff(x, y, e); }
 
     /**
@@ -529,7 +532,7 @@ namespace GeographicLib {
      * 10<sup>−200</sup>).  This converts -0 to +0; however tiny negative
      * numbers get converted to -0.
      **********************************************************************/
-    template<typename T> static inline T AngRound(T x) {
+    template<typename T> static T AngRound(T x) {
       using std::abs;
       static const T z = 1/T(16);
       if (x == 0) return 0;
@@ -552,7 +555,7 @@ namespace GeographicLib {
      * If x = −0, then \e sinx = −0; this is the only case where
      * −0 is returned.
      **********************************************************************/
-    template<typename T> static inline void sincosd(T x, T& sinx, T& cosx) {
+    template<typename T> static void sincosd(T x, T& sinx, T& cosx) {
       // In order to minimize round-off errors, this function exactly reduces
       // the argument to the range [-45, 45] before converting it to radians.
       using std::sin; using std::cos;
@@ -593,7 +596,7 @@ namespace GeographicLib {
       default: sinx = -c; cosx =  s; break; // case 3U
       }
       // Set sign of 0 results.  -0 only produced for sin(-0)
-      if (x) { sinx += T(0); cosx += T(0); }
+      if (x != 0) { sinx += T(0); cosx += T(0); }
     }
 
     /**
@@ -603,7 +606,7 @@ namespace GeographicLib {
      * @param[in] x in degrees.
      * @return sin(<i>x</i>).
      **********************************************************************/
-    template<typename T> static inline T sind(T x) {
+    template<typename T> static T sind(T x) {
       // See sincosd
       using std::sin; using std::cos;
       T r; int q;
@@ -622,7 +625,7 @@ namespace GeographicLib {
       unsigned p = unsigned(q);
       r = p & 1U ? cos(r) : sin(r);
       if (p & 2U) r = -r;
-      if (x) r += T(0);
+      if (x != 0) r += T(0);
       return r;
     }
 
@@ -633,7 +636,7 @@ namespace GeographicLib {
      * @param[in] x in degrees.
      * @return cos(<i>x</i>).
      **********************************************************************/
-    template<typename T> static inline T cosd(T x) {
+    template<typename T> static T cosd(T x) {
       // See sincosd
       using std::sin; using std::cos;
       T r; int q;
@@ -665,11 +668,11 @@ namespace GeographicLib {
      * If \e x = ±90°, then a suitably large (but finite) value is
      * returned.
      **********************************************************************/
-    template<typename T> static inline T tand(T x) {
+    template<typename T> static T tand(T x) {
       static const T overflow = 1 / sq(std::numeric_limits<T>::epsilon());
       T s, c;
       sincosd(x, s, c);
-      return c ? s / c : (s < 0 ? -overflow : overflow);
+      return c != 0 ? s / c : (s < 0 ? -overflow : overflow);
     }
 
     /**
@@ -685,7 +688,7 @@ namespace GeographicLib {
      * −1) = −180°, for ε positive and tiny;
      * atan2d(±0, +1) = ±0°.
      **********************************************************************/
-    template<typename T> static inline T atan2d(T y, T x) {
+    template<typename T> static T atan2d(T y, T x) {
       // In order to minimize round-off errors, this function rearranges the
       // arguments so that result of atan2 is in the range [-pi/4, pi/4] before
       // converting it to degrees and mapping the result to the correct
@@ -717,7 +720,7 @@ namespace GeographicLib {
      * @param[in] x
      * @return atan(<i>x</i>) in degrees.
      **********************************************************************/
-    template<typename T> static inline T atand(T x)
+    template<typename T> static T atand(T x)
     { return atan2d(x, T(1)); }
 
     /**
@@ -745,7 +748,7 @@ namespace GeographicLib {
      * This routine correctly handles the case \e y = −0, returning
      * &minus|<i>x</i>|.
      **********************************************************************/
-    template<typename T> static inline T copysign(T x, T y) {
+    template<typename T> static T copysign(T x, T y) {
 #if GEOGRAPHICLIB_CXX11_MATH
       using std::copysign; return copysign(x, y);
 #else
@@ -769,7 +772,8 @@ namespace GeographicLib {
      * <a href="https://doi.org/10.1007/s00190-011-0445-3">
      * Transverse Mercator with an accuracy of a few nanometers,</a>
      * J. Geodesy 85(8), 475--485 (Aug. 2011)
-     * (preprint <a href="https://arxiv.org/abs/1002.1417">arXiv:1002.1417</a>).
+     * (preprint
+     * <a href="https://arxiv.org/abs/1002.1417">arXiv:1002.1417</a>).
      **********************************************************************/
     template<typename T> static T taupf(T tau, T es);
 
@@ -787,7 +791,8 @@ namespace GeographicLib {
      * <a href="https://doi.org/10.1007/s00190-011-0445-3">
      * Transverse Mercator with an accuracy of a few nanometers,</a>
      * J. Geodesy 85(8), 475--485 (Aug. 2011)
-     * (preprint <a href="https://arxiv.org/abs/1002.1417">arXiv:1002.1417</a>).
+     * (preprint
+     * <a href="https://arxiv.org/abs/1002.1417">arXiv:1002.1417</a>).
      **********************************************************************/
     template<typename T> static T tauf(T taup, T es);
 
@@ -798,7 +803,7 @@ namespace GeographicLib {
      * @param[in] x
      * @return true if number is finite, false if NaN or infinite.
      **********************************************************************/
-    template<typename T> static inline bool isfinite(T x) {
+    template<typename T> static bool isfinite(T x) {
 #if GEOGRAPHICLIB_CXX11_MATH
       using std::isfinite; return isfinite(x);
 #else
@@ -822,7 +827,7 @@ namespace GeographicLib {
      * @tparam T the type of the returned value.
      * @return NaN if available, otherwise return the max real of type T.
      **********************************************************************/
-    template<typename T> static inline T NaN() {
+    template<typename T> static T NaN() {
 #if defined(_MSC_VER)
       return std::numeric_limits<T>::has_quiet_NaN ?
         std::numeric_limits<T>::quiet_NaN() :
@@ -836,7 +841,7 @@ namespace GeographicLib {
     /**
      * A synonym for NaN<real>().
      **********************************************************************/
-    static inline real NaN() { return NaN<real>(); }
+    static real NaN() { return NaN<real>(); }
 
     /**
      * Test for NaN.
@@ -845,7 +850,7 @@ namespace GeographicLib {
      * @param[in] x
      * @return true if argument is a NaN.
      **********************************************************************/
-    template<typename T> static inline bool isnan(T x) {
+    template<typename T> static bool isnan(T x) {
 #if GEOGRAPHICLIB_CXX11_MATH
       using std::isnan; return isnan(x);
 #else
@@ -859,7 +864,7 @@ namespace GeographicLib {
      * @tparam T the type of the returned value.
      * @return infinity if available, otherwise return the max real.
      **********************************************************************/
-    template<typename T> static inline T infinity() {
+    template<typename T> static T infinity() {
 #if defined(_MSC_VER)
       return std::numeric_limits<T>::has_infinity ?
         std::numeric_limits<T>::infinity() :
@@ -873,7 +878,7 @@ namespace GeographicLib {
     /**
      * A synonym for infinity<real>().
      **********************************************************************/
-    static inline real infinity() { return infinity<real>(); }
+    static real infinity() { return infinity<real>(); }
 
     /**
      * Swap the bytes of a quantity
@@ -882,7 +887,7 @@ namespace GeographicLib {
      * @param[in] x
      * @return x with its bytes swapped.
      **********************************************************************/
-    template<typename T> static inline T swab(T x) {
+    template<typename T> static T swab(T x) {
       union {
         T r;
         unsigned char c[sizeof(T)];
@@ -905,33 +910,33 @@ namespace GeographicLib {
         <boost::math::policies::errno_on_error> >
       boost_special_functions_policy;
 
-    static inline real hypot(real x, real y)
+    static real hypot(real x, real y)
     { return boost::math::hypot(x, y, boost_special_functions_policy()); }
 
-    static inline real expm1(real x)
+    static real expm1(real x)
     { return boost::math::expm1(x, boost_special_functions_policy()); }
 
-    static inline real log1p(real x)
+    static real log1p(real x)
     { return boost::math::log1p(x, boost_special_functions_policy()); }
 
-    static inline real asinh(real x)
+    static real asinh(real x)
     { return boost::math::asinh(x, boost_special_functions_policy()); }
 
-    static inline real atanh(real x)
+    static real atanh(real x)
     { return boost::math::atanh(x, boost_special_functions_policy()); }
 
-    static inline real cbrt(real x)
+    static real cbrt(real x)
     { return boost::math::cbrt(x, boost_special_functions_policy()); }
 
-    static inline real fma(real x, real y, real z)
+    static real fma(real x, real y, real z)
     { return fmaq(__float128(x), __float128(y), __float128(z)); }
 
-    static inline real copysign(real x, real y)
+    static real copysign(real x, real y)
     { return boost::math::copysign(x, y); }
 
-    static inline bool isnan(real x) { return boost::math::isnan(x); }
+    static bool isnan(real x) { return boost::math::isnan(x); }
 
-    static inline bool isfinite(real x) { return boost::math::isfinite(x); }
+    static bool isfinite(real x) { return boost::math::isfinite(x); }
 #endif
   };
 
diff --git a/include/GeographicLib/NearestNeighbor.hpp b/include/GeographicLib/NearestNeighbor.hpp
index 3dd8612..1299233 100644
--- a/include/GeographicLib/NearestNeighbor.hpp
+++ b/include/GeographicLib/NearestNeighbor.hpp
@@ -2,8 +2,8 @@
  * \file NearestNeighbor.hpp
  * \brief Header for GeographicLib::NearestNeighbor class
  *
- * Copyright (c) Charles Karney (2016) <charles at karney.com> and licensed under
- * the MIT/X11 License.  For more information, see
+ * Copyright (c) Charles Karney (2016-2017) <charles at karney.com> and licensed
+ * under the MIT/X11 License.  For more information, see
  * https://geographiclib.sourceforge.io/
  **********************************************************************/
 
@@ -22,10 +22,8 @@
 // Only for GEOGRAPHICLIB_STATIC_ASSERT and GeographicLib::GeographicErr
 #include <GeographicLib/Constants.hpp>
 
-#if !defined(GEOGRAPHICLIB_HAVE_BOOST_SERIALIZATION)
-#define GEOGRAPHICLIB_HAVE_BOOST_SERIALIZATION 0
-#endif
-#if GEOGRAPHICLIB_HAVE_BOOST_SERIALIZATION
+#if defined(GEOGRAPHICLIB_HAVE_BOOST_SERIALIZATION) && \
+  GEOGRAPHICLIB_HAVE_BOOST_SERIALIZATION
 #include <boost/serialization/nvp.hpp>
 #include <boost/serialization/split_member.hpp>
 #include <boost/serialization/array.hpp>
@@ -50,8 +48,8 @@ namespace GeographicLib {
    * follows:
    *
    * @tparam dist_t the type used for measuring distances; it can be a real or
-   *   signed integer type; in typical geodetic applications, \e dist_t might be
-   *   <code>double</code>.
+   *   signed integer type; in typical geodetic applications, \e dist_t might
+   *   be <code>double</code>.
    * @tparam pos_t the type for specifying the positions of points; geodetic
    *   application might bundled the latitude and longitude into a
    *   <code>std::pair<dist_t, dist_t></code>.
@@ -80,7 +78,7 @@ namespace GeographicLib {
    * stand-alone facility.
    *
    * The \e dist_t type must support numeric_limits queries (specifically:
-   * is_signed, is_integer, max(), digits, and digits10).
+   * is_signed, is_integer, max(), digits).
    *
    * The NearestNeighbor object is constructed with a vector of points (type \e
    * pos_t) and a distance function (type \e distfun_t).  However the object
@@ -106,10 +104,11 @@ namespace GeographicLib {
   class NearestNeighbor {
     // For tracking changes to the I/O format
     static const int version = 1;
-    // This is what we get "free"; but if sizeof(dist_t) = 1 (unlikely), allow 4
-    // slots (and this accommodates the default value bucket = 4).
-    static const int maxbucket = (2 + ((4 * sizeof(dist_t)) / sizeof(int) >= 2 ?
-                                       (4 * sizeof(dist_t)) / sizeof(int) : 2));
+    // This is what we get "free"; but if sizeof(dist_t) = 1 (unlikely), allow
+    // 4 slots (and this accommodates the default value bucket = 4).
+    static const int maxbucket =
+      (2 + ((4 * sizeof(dist_t)) / sizeof(int) >= 2 ?
+            (4 * sizeof(dist_t)) / sizeof(int) : 2));
   public:
 
     /**
@@ -130,11 +129,6 @@ namespace GeographicLib {
      *   the size of \e pts is too big for an int.
      * @exception std::bad_alloc if memory for the tree can't be allocated.
      *
-     * The distances computed by \e dist must satisfy the standard metric
-     * conditions.  If not, the results are undefined.  Neither the data in \e
-     * pts nor the query points should contain NaNs or infinities because such
-     * data violates the metric conditions.
-     *
      * \e pts may contain coincident points (i.e., the distance between them
      * vanishes); these are treated as distinct.
      *
@@ -145,6 +139,11 @@ namespace GeographicLib {
      * However each search then requires about bucket additional distance
      * calculations.
      *
+     * \warning The distances computed by \e dist must satisfy the standard
+     * metric conditions.  If not, the results are undefined.  Neither the data
+     * in \e pts nor the query points should contain NaNs or infinities because
+     * such data violates the metric conditions.
+     *
      * \warning The same arguments \e pts and \e dist must be provided
      * to the Search() function.
      **********************************************************************/
@@ -210,6 +209,8 @@ namespace GeographicLib {
      * @param[in] tol the tolerance on the results (default 0).
      * @return the distance to the closest point found (−1 if no points
      *   are found).
+     * @exception GeographicErr if \e pts has a different size from that used
+     *   to construct the object.
      *
      * The indices returned in \e ind are sorted by distance from \e query
      * (closest first).
@@ -247,22 +248,26 @@ namespace GeographicLib {
      * The distances to other points (indexed by <i>ind</i><sub><i>j</i></sub>
      * for \e j > 0) can be found by invoking \e dist again.
      *
-     * \warning The arguments \e pts and \e dist must be identical to
-     * those used to initialize the NearestNeighbor; if not, the behavior of
-     * this function is undefined (however, if the size of \e pts is wrong,
-     * this function exits with no results returned).
+     * \warning The arguments \e pts and \e dist must be identical to those
+     * used to initialize the NearestNeighbor; if not, this function will
+     * return some meaningless result (however, if the size of \e pts is wrong,
+     * this function throw an exception).
+     *
+     * \warning The query point cannot be a NaN or infinite because then the
+     * metric conditions are violated.
      **********************************************************************/
     dist_t Search(const std::vector<pos_t>& pts, const distfun_t& dist,
-                const pos_t& query,
-                std::vector<int>& ind,
-                int k = 1,
-                dist_t maxdist = std::numeric_limits<dist_t>::max(),
-                dist_t mindist = -1,
-                bool exhaustive = true,
-                dist_t tol = 0) const {
+                  const pos_t& query,
+                  std::vector<int>& ind,
+                  int k = 1,
+                  dist_t maxdist = std::numeric_limits<dist_t>::max(),
+                  dist_t mindist = -1,
+                  bool exhaustive = true,
+                  dist_t tol = 0) const {
+      if (_numpoints != int(pts.size()))
+          throw GeographicLib::GeographicErr("pts array has wrong size");
       std::priority_queue<item> results;
-      if (_numpoints > 0 && _numpoints == int(pts.size()) &&
-          k > 0 && maxdist > mindist) {
+      if (_numpoints > 0 && k > 0 && maxdist > mindist) {
         // distance to the kth closest point so far
         dist_t tau = maxdist;
         // first is negative of how far query is outside boundary of node
@@ -400,8 +405,12 @@ namespace GeographicLib {
         std::stringstream ostring;
           // Ensure enough precision for type dist_t.  With C++11, max_digits10
           // can be used instead.
-        if (!std::numeric_limits<dist_t>::is_integer)
-          ostring.precision(std::numeric_limits<dist_t>::digits10 + 2);
+        if (!std::numeric_limits<dist_t>::is_integer) {
+          static const int prec
+            = int(std::ceil(std::numeric_limits<dist_t>::digits *
+                            std::log10(2.0) + 1));
+          ostring.precision(prec);
+        }
         ostring << version << " " << realspec << " " << _bucket << " "
                 << _numpoints << " " << _tree.size() << " " << _cost;
         for (int i = 0; i < int(_tree.size()); ++i) {
@@ -468,7 +477,10 @@ namespace GeographicLib {
       if (!( 0 <= bucket && bucket <= maxbucket ))
         throw GeographicLib::GeographicErr("Bad bucket size");
       if (!( 0 <= treesize && treesize <= numpoints ))
-        throw GeographicLib::GeographicErr("Bad number of points or tree size");
+        throw
+          GeographicLib::GeographicErr("Bad number of points or tree size");
+      if (!( 0 <= cost ))
+        throw GeographicLib::GeographicErr("Bad value for cost");
       std::vector<Node> tree;
       tree.reserve(treesize);
       for (int i = 0; i < treesize; ++i) {
@@ -647,9 +659,11 @@ namespace GeographicLib {
         }
       }
 
-#if GEOGRAPHICLIB_HAVE_BOOST_SERIALIZATION
+#if defined(GEOGRAPHICLIB_HAVE_BOOST_SERIALIZATION) && \
+  GEOGRAPHICLIB_HAVE_BOOST_SERIALIZATION
       friend class boost::serialization::access;
-      template<class Archive> void save(Archive& ar, const unsigned int) const {
+      template<class Archive>
+      void save(Archive& ar, const unsigned int) const {
         ar & boost::serialization::make_nvp("index", index);
         if (index < 0)
           ar & boost::serialization::make_nvp("leaves", leaves);
@@ -658,7 +672,8 @@ namespace GeographicLib {
             & boost::serialization::make_nvp("upper", data.upper)
             & boost::serialization::make_nvp("child", data.child);
       }
-      template<class Archive> void load(Archive& ar, const unsigned int) {
+      template<class Archive>
+      void load(Archive& ar, const unsigned int) {
         ar & boost::serialization::make_nvp("index", index);
         if (index < 0)
           ar & boost::serialization::make_nvp("leaves", leaves);
@@ -673,7 +688,8 @@ namespace GeographicLib {
 #endif
     };
     // \endcond
-#if GEOGRAPHICLIB_HAVE_BOOST_SERIALIZATION
+#if defined(GEOGRAPHICLIB_HAVE_BOOST_SERIALIZATION) && \
+  GEOGRAPHICLIB_HAVE_BOOST_SERIALIZATION
     friend class boost::serialization::access;
     template<class Archive> void save(Archive& ar, const unsigned) const {
       int realspec = std::numeric_limits<dist_t>::digits *
@@ -705,7 +721,8 @@ namespace GeographicLib {
         & boost::serialization::make_nvp("cost", cost)
         & boost::serialization::make_nvp("tree", tree);
       if (!( 0 <= int(tree.size()) && int(tree.size()) <= numpoints ))
-        throw GeographicLib::GeographicErr("Bad number of points or tree size");
+        throw
+          GeographicLib::GeographicErr("Bad number of points or tree size");
       for (int i = 0; i < int(tree.size()); ++i)
         tree[i].Check(numpoints, int(tree.size()), bucket);
       _tree.swap(tree);
@@ -747,7 +764,9 @@ namespace GeographicLib {
           ++cost;
         }
         // partition around the median distance
-        std::nth_element(ids.begin() + l + 1, ids.begin() + m, ids.begin() + u);
+        std::nth_element(ids.begin() + l + 1,
+                         ids.begin() + m,
+                         ids.begin() + u);
         node.index = ids[l].second;
         if (m > l + 1) {        // node.child[0] is possibly empty
           typename std::vector<item>::iterator
@@ -799,8 +818,8 @@ namespace std {
    *
    * @tparam dist_t the type used for measuring distances.
    * @tparam pos_t the type for specifying the positions of points.
-   * @tparam distfun_t the type for a function object which calculates distances
-   *   between points.
+   * @tparam distfun_t the type for a function object which calculates
+   *   distances between points.
    * @param[in,out] a the first GeographicLib::NearestNeighbor to swap.
    * @param[in,out] b the second GeographicLib::NearestNeighbor to swap.
    **********************************************************************/
diff --git a/include/GeographicLib/OSGB.hpp b/include/GeographicLib/OSGB.hpp
index 43d0a0f..d44c9c0 100644
--- a/include/GeographicLib/OSGB.hpp
+++ b/include/GeographicLib/OSGB.hpp
@@ -2,7 +2,7 @@
  * \file OSGB.hpp
  * \brief Header for GeographicLib::OSGB class
  *
- * Copyright (c) Charles Karney (2010-2016) <charles at karney.com> and licensed
+ * Copyright (c) Charles Karney (2010-2017) <charles at karney.com> and licensed
  * under the MIT/X11 License.  For more information, see
  * https://geographiclib.sourceforge.io/
  **********************************************************************/
@@ -44,8 +44,8 @@ namespace GeographicLib {
   class GEOGRAPHICLIB_EXPORT OSGB {
   private:
     typedef Math::real real;
-    static const std::string letters_;
-    static const std::string digits_;
+    static const char* const letters_;
+    static const char* const digits_;
     static const TransverseMercator& OSGBTM();
     enum {
       base_ = 10,
@@ -191,7 +191,7 @@ namespace GeographicLib {
     // result is about 6377563.3960320664406 m
       using std::pow;
       return pow(real(10), real(48401603 - 100000000) / 100000000)
-        * 20923713;
+        * real(20923713);
     }
 
     /**
@@ -203,7 +203,7 @@ namespace GeographicLib {
      * because the OSGB projection is based on this ellipsoid.)
      **********************************************************************/
     static Math::real Flattening()
-    { return real(20923713 - 20853810) / 20923713; }
+    { return real(20923713 - 20853810) / real(20923713); }
 
     /**
      * @return \e k0 central scale for the OSGB projection (0.9996012717...).
diff --git a/include/GeographicLib/PolarStereographic.hpp b/include/GeographicLib/PolarStereographic.hpp
index b89b44a..ff06e66 100644
--- a/include/GeographicLib/PolarStereographic.hpp
+++ b/include/GeographicLib/PolarStereographic.hpp
@@ -26,6 +26,10 @@ namespace GeographicLib {
    * This is a straightforward implementation of the equations in Snyder except
    * that Newton's method is used to invert the projection.
    *
+   * This class also returns the meridian convergence \e gamma and scale \e k.
+   * The meridian convergence is the bearing of grid north (the \e y axis)
+   * measured clockwise from true north.
+   *
    * Example of use:
    * \include example-PolarStereographic.cpp
    **********************************************************************/
diff --git a/include/GeographicLib/PolygonArea.hpp b/include/GeographicLib/PolygonArea.hpp
index ff71ae4..479e5a8 100644
--- a/include/GeographicLib/PolygonArea.hpp
+++ b/include/GeographicLib/PolygonArea.hpp
@@ -73,7 +73,7 @@ namespace GeographicLib {
     int _crossings;
     Accumulator<> _areasum, _perimetersum;
     real _lat0, _lon0, _lat1, _lon1;
-    static inline int transit(real lon1, real lon2) {
+    static int transit(real lon1, real lon2) {
       // Return 1 or -1 if crossing prime meridian in east or west direction.
       // Otherwise return zero.
       // Compute lon12 the same way as Geodesic::Inverse.
@@ -89,7 +89,7 @@ namespace GeographicLib {
     }
     // an alternate version of transit to deal with longitudes in the direct
     // problem.
-    static inline int transitdirect(real lon1, real lon2) {
+    static int transitdirect(real lon1, real lon2) {
       // We want to compute exactly
       //   int(floor(lon2 / 360)) - int(floor(lon1 / 360))
       // Since we only need the parity of the result we can use std::remquo;
diff --git a/include/GeographicLib/Rhumb.hpp b/include/GeographicLib/Rhumb.hpp
index e91dca7..e2409e0 100644
--- a/include/GeographicLib/Rhumb.hpp
+++ b/include/GeographicLib/Rhumb.hpp
@@ -2,7 +2,7 @@
  * \file Rhumb.hpp
  * \brief Header for GeographicLib::Rhumb and GeographicLib::RhumbLine classes
  *
- * Copyright (c) Charles Karney (2014-2016) <charles at karney.com> and licensed
+ * Copyright (c) Charles Karney (2014-2017) <charles at karney.com> and licensed
  * under the MIT/X11 License.  For more information, see
  * https://geographiclib.sourceforge.io/
  **********************************************************************/
@@ -75,7 +75,7 @@ namespace GeographicLib {
     static const int maxpow_ = GEOGRAPHICLIB_RHUMBAREA_ORDER;
     // _R[0] unused
     real _R[maxpow_ + 1];
-    static inline real gd(real x)
+    static real gd(real x)
     { using std::atan; using std::sinh; return atan(sinh(x)); }
 
     // Use divided differences to determine (mu2 - mu1) / (psi2 - psi1)
@@ -89,58 +89,59 @@ namespace GeographicLib {
     //   https://doi.org/10.1145/334714.334716
     //   http://www.cs.berkeley.edu/~fateman/papers/divdiff.pdf
 
-    static inline real Dlog(real x, real y) {
+    static real Dlog(real x, real y) {
       real t = x - y;
-      return t ? 2 * Math::atanh(t / (x + y)) / t : 1 / x;
+      return t != 0 ? 2 * Math::atanh(t / (x + y)) / t : 1 / x;
     }
     // N.B., x and y are in degrees
-    static inline real Dtan(real x, real y) {
+    static real Dtan(real x, real y) {
       real d = x - y, tx = Math::tand(x), ty = Math::tand(y), txy = tx * ty;
-      return d ?
+      return d != 0 ?
         (2 * txy > -1 ? (1 + txy) * Math::tand(d) : tx - ty) /
         (d * Math::degree()) :
         1 + txy;
     }
-    static inline real Datan(real x, real y) {
+    static real Datan(real x, real y) {
       using std::atan;
       real d = x - y, xy = x * y;
-      return d ? (2 * xy > -1 ? atan( d / (1 + xy) ) : atan(x) - atan(y)) / d :
+      return d != 0 ?
+        (2 * xy > -1 ? atan( d / (1 + xy) ) : atan(x) - atan(y)) / d :
         1 / (1 + xy);
     }
-    static inline real Dsin(real x, real y) {
+    static real Dsin(real x, real y) {
       using std::sin; using std::cos;
       real d = (x - y) / 2;
-      return cos((x + y)/2) * (d ? sin(d) / d : 1);
+      return cos((x + y)/2) * (d != 0 ? sin(d) / d : 1);
     }
-    static inline real Dsinh(real x, real y) {
+    static real Dsinh(real x, real y) {
       using std::sinh; using std::cosh;
       real d = (x - y) / 2;
-      return cosh((x + y) / 2) * (d ? sinh(d) / d : 1);
+      return cosh((x + y) / 2) * (d != 0 ? sinh(d) / d : 1);
     }
-    static inline real Dcosh(real x, real y) {
+    static real Dcosh(real x, real y) {
       using std::sinh;
       real d = (x - y) / 2;
-      return sinh((x + y) / 2) * (d ? sinh(d) / d : 1);
+      return sinh((x + y) / 2) * (d != 0 ? sinh(d) / d : 1);
     }
-    static inline real Dasinh(real x, real y) {
+    static real Dasinh(real x, real y) {
       real d = x - y,
         hx = Math::hypot(real(1), x), hy = Math::hypot(real(1), y);
-      return d ? Math::asinh(x*y > 0 ? d * (x + y) / (x*hy + y*hx) :
-                             x*hy - y*hx) / d :
+      return d != 0 ? Math::asinh(x*y > 0 ? d * (x + y) / (x*hy + y*hx) :
+                                  x*hy - y*hx) / d :
         1 / hx;
     }
-    static inline real Dgd(real x, real y) {
+    static real Dgd(real x, real y) {
       using std::sinh;
       return Datan(sinh(x), sinh(y)) * Dsinh(x, y);
     }
     // N.B., x and y are the tangents of the angles
-    static inline real Dgdinv(real x, real y)
+    static real Dgdinv(real x, real y)
     { return Dasinh(x, y) / Datan(x, y); }
     // Copied from LambertConformalConic...
     // Deatanhe(x,y) = eatanhe((x-y)/(1-e^2*x*y))/(x-y)
-    inline real Deatanhe(real x, real y) const {
+    real Deatanhe(real x, real y) const {
       real t = x - y, d = 1 - _ell._e2 * x * y;
-      return t ? Math::eatanhe(t / d, _ell._es) / t : _ell._e2 / d;
+      return t != 0 ? Math::eatanhe(t / d, _ell._es) / t : _ell._e2 / d;
     }
     // (E(x) - E(y)) / (x - y) -- E = incomplete elliptic integral of 2nd kind
     real DE(real x, real y) const;
@@ -309,8 +310,8 @@ namespace GeographicLib {
      * \e lon1 indicates how many times and in what sense the rhumb line
      * encircles the ellipsoid.
      **********************************************************************/
-    void GenDirect(real lat1, real lon1, real azi12, real s12, unsigned outmask,
-                   real& lat2, real& lon2, real& S12) const;
+    void GenDirect(real lat1, real lon1, real azi12, real s12,
+                   unsigned outmask, real& lat2, real& lon2, real& S12) const;
 
     /**
      * Solve the inverse rhumb problem returning also the area.
diff --git a/include/GeographicLib/SphericalEngine.hpp b/include/GeographicLib/SphericalEngine.hpp
index 6f743e4..1c8465b 100644
--- a/include/GeographicLib/SphericalEngine.hpp
+++ b/include/GeographicLib/SphericalEngine.hpp
@@ -2,7 +2,7 @@
  * \file SphericalEngine.hpp
  * \brief Header for GeographicLib::SphericalEngine class
  *
- * Copyright (c) Charles Karney (2011-2012) <charles at karney.com> and licensed
+ * Copyright (c) Charles Karney (2011-2017) <charles at karney.com> and licensed
  * under the MIT/X11 License.  For more information, see
  * https://geographiclib.sourceforge.io/
  **********************************************************************/
@@ -40,16 +40,21 @@ namespace GeographicLib {
   class GEOGRAPHICLIB_EXPORT SphericalEngine {
   private:
     typedef Math::real real;
-    // A table of the square roots of integers
-    static std::vector<real> root_;
-    friend class CircularEngine; // CircularEngine needs access to root_, scale_
+    // CircularEngine needs access to sqrttable, scale
+    friend class CircularEngine;
+    // Return the table of the square roots of integers
+    static std::vector<real>& sqrttable();
     // An internal scaling of the coefficients to avoid overflow in
     // intermediate calculations.
     static real scale() {
       using std::pow;
-      return pow(real(std::numeric_limits<real>::radix),
-                 -3 * (std::numeric_limits<real>::max_exponent < (1<<14) ?
-                       std::numeric_limits<real>::max_exponent : (1<<14)) / 5);
+      static const real
+        // Need extra real because, since C++11, pow(float, int) returns double
+        s = real(pow(real(std::numeric_limits<real>::radix),
+                     -3 * (std::numeric_limits<real>::max_exponent < (1<<14) ?
+                           std::numeric_limits<real>::max_exponent : (1<<14))
+                     / 5));
+      return s;
     }
     // Move latitudes near the pole off the axis by this amount.
     static real eps() {
@@ -57,7 +62,6 @@ namespace GeographicLib {
       return std::numeric_limits<real>::epsilon() *
         sqrt(std::numeric_limits<real>::epsilon());
     }
-    static const std::vector<real> Z_;
     SphericalEngine();          // Disable constructor
   public:
     /**
@@ -101,12 +105,7 @@ namespace GeographicLib {
       /**
        * A default constructor
        **********************************************************************/
-      coeff()
-        : _Nx(-1)
-        , _nmx(-1)
-        , _mmx(-1)
-        , _Cnm(Z_.begin())
-        , _Snm(Z_.begin()) {}
+      coeff() : _Nx(-1) , _nmx(-1) , _mmx(-1) {}
       /**
        * The general constructor.
        *
@@ -169,15 +168,15 @@ namespace GeographicLib {
       /**
        * @return \e N the degree giving storage layout for \e C and \e S.
        **********************************************************************/
-      inline int N() const { return _Nx; }
+      int N() const { return _Nx; }
       /**
        * @return \e nmx the maximum degree to be used.
        **********************************************************************/
-      inline int nmx() const { return _nmx; }
+      int nmx() const { return _nmx; }
       /**
        * @return \e mmx the maximum order to be used.
        **********************************************************************/
-      inline int mmx() const { return _mmx; }
+      int mmx() const { return _mmx; }
       /**
        * The one-dimensional index into \e C and \e S.
        *
@@ -185,7 +184,7 @@ namespace GeographicLib {
        * @param[in] m the order.
        * @return the one-dimensional index.
        **********************************************************************/
-      inline int index(int n, int m) const
+      int index(int n, int m) const
       { return m * _Nx - m * (m - 1) / 2 + n; }
       /**
        * An element of \e C.
@@ -193,14 +192,14 @@ namespace GeographicLib {
        * @param[in] k the one-dimensional index.
        * @return the value of the \e C coefficient.
        **********************************************************************/
-      inline Math::real Cv(int k) const { return *(_Cnm + k); }
+      Math::real Cv(int k) const { return *(_Cnm + k); }
       /**
        * An element of \e S.
        *
        * @param[in] k the one-dimensional index.
        * @return the value of the \e S coefficient.
        **********************************************************************/
-      inline Math::real Sv(int k) const { return *(_Snm + (k - (_Nx + 1))); }
+      Math::real Sv(int k) const { return *(_Snm + (k - (_Nx + 1))); }
       /**
        * An element of \e C with checking.
        *
@@ -211,7 +210,7 @@ namespace GeographicLib {
        * @return the value of the \e C coefficient multiplied by \e f in \e n
        *   and \e m are in range else 0.
        **********************************************************************/
-      inline Math::real Cv(int k, int n, int m, real f) const
+      Math::real Cv(int k, int n, int m, real f) const
       { return m > _mmx || n > _nmx ? 0 : *(_Cnm + k) * f; }
       /**
        * An element of \e S with checking.
@@ -223,7 +222,7 @@ namespace GeographicLib {
        * @return the value of the \e S coefficient multiplied by \e f in \e n
        *   and \e m are in range else 0.
        **********************************************************************/
-      inline Math::real Sv(int k, int n, int m, real f) const
+      Math::real Sv(int k, int n, int m, real f) const
       { return m > _mmx || n > _nmx ? 0 : *(_Snm + (k - (_Nx + 1))) * f; }
 
       /**
@@ -234,7 +233,7 @@ namespace GeographicLib {
        * @return the size of the vector of cosine terms as stored in column
        *   major order.
        **********************************************************************/
-      static inline int Csize(int N, int M)
+      static int Csize(int N, int M)
       { return (M + 1) * (2 * N - M + 2) / 2; }
 
       /**
@@ -245,7 +244,7 @@ namespace GeographicLib {
        * @return the size of the vector of cosine terms as stored in column
        *   major order.
        **********************************************************************/
-      static inline int Ssize(int N, int M)
+      static int Ssize(int N, int M)
       { return Csize(N, M) - (N + 1); }
 
       /**
@@ -358,12 +357,14 @@ namespace GeographicLib {
      * Clear the static table of square roots and release the memory.  Call
      * this only when you are sure you no longer will be using SphericalEngine.
      * Your program will crash if you call SphericalEngine after calling this
-     * routine.  <b>It's safest not to call this routine at all.</b> (The space
-     * used by the table is modest.)
+     * routine.
+     *
+     * \warning It's safest not to call this routine at all.  (The space used
+     * by the table is modest.)
      **********************************************************************/
     static void ClearRootTable() {
       std::vector<real> temp(0);
-      root_.swap(temp);
+      sqrttable().swap(temp);
     }
   };
 
diff --git a/include/GeographicLib/SphericalHarmonic2.hpp b/include/GeographicLib/SphericalHarmonic2.hpp
index 43eb426..9477dc6 100644
--- a/include/GeographicLib/SphericalHarmonic2.hpp
+++ b/include/GeographicLib/SphericalHarmonic2.hpp
@@ -183,7 +183,8 @@ namespace GeographicLib {
      * Compute a spherical harmonic sum with two correction terms.
      *
      * @param[in] tau1 multiplier for correction coefficients \e C' and \e S'.
-     * @param[in] tau2 multiplier for correction coefficients \e C'' and \e S''.
+     * @param[in] tau2 multiplier for correction coefficients \e C'' and \e
+     *   S''.
      * @param[in] x cartesian coordinate.
      * @param[in] y cartesian coordinate.
      * @param[in] z cartesian coordinate.
@@ -215,7 +216,8 @@ namespace GeographicLib {
      * gradient.
      *
      * @param[in] tau1 multiplier for correction coefficients \e C' and \e S'.
-     * @param[in] tau2 multiplier for correction coefficients \e C'' and \e S''.
+     * @param[in] tau2 multiplier for correction coefficients \e C'' and \e
+     *   S''.
      * @param[in] x cartesian coordinate.
      * @param[in] y cartesian coordinate.
      * @param[in] z cartesian coordinate.
@@ -251,7 +253,8 @@ namespace GeographicLib {
      * points on a circle of latitude at fixed values of \e tau1 and \e tau2.
      *
      * @param[in] tau1 multiplier for correction coefficients \e C' and \e S'.
-     * @param[in] tau2 multiplier for correction coefficients \e C'' and \e S''.
+     * @param[in] tau2 multiplier for correction coefficients \e C'' and \e
+     *   S''.
      * @param[in] p the radius of the circle.
      * @param[in] z the height of the circle above the equatorial plane.
      * @param[in] gradp if true the returned object will be able to compute the
diff --git a/include/GeographicLib/TransverseMercator.hpp b/include/GeographicLib/TransverseMercator.hpp
index 4ebd2e5..c0f6e74 100644
--- a/include/GeographicLib/TransverseMercator.hpp
+++ b/include/GeographicLib/TransverseMercator.hpp
@@ -74,6 +74,10 @@ namespace GeographicLib {
    * EPSG:7405</a>) which requires the use of a latitude of origin.  This is
    * implemented by the GeographicLib::OSGB class.
    *
+   * This class also returns the meridian convergence \e gamma and scale \e k.
+   * The meridian convergence is the bearing of grid north (the \e y axis)
+   * measured clockwise from true north.
+   *
    * See TransverseMercator.cpp for more information on the implementation.
    *
    * See \ref transversemercator for a discussion of this projection.
diff --git a/include/GeographicLib/TransverseMercatorExact.hpp b/include/GeographicLib/TransverseMercatorExact.hpp
index 8f81efd..f9b4070 100644
--- a/include/GeographicLib/TransverseMercatorExact.hpp
+++ b/include/GeographicLib/TransverseMercatorExact.hpp
@@ -63,6 +63,10 @@ namespace GeographicLib {
    * type="application/vnd.google-earth.kmz"> tm-grid.kmz</a>, for an
    * illustration of the transverse Mercator grid in Google Earth.
    *
+   * This class also returns the meridian convergence \e gamma and scale \e k.
+   * The meridian convergence is the bearing of grid north (the \e y axis)
+   * measured clockwise from true north.
+   *
    * See TransverseMercatorExact.cpp for more information on the
    * implementation.
    *
diff --git a/include/GeographicLib/UTMUPS.hpp b/include/GeographicLib/UTMUPS.hpp
index b7c8cad..b662d3e 100644
--- a/include/GeographicLib/UTMUPS.hpp
+++ b/include/GeographicLib/UTMUPS.hpp
@@ -337,7 +337,8 @@ namespace GeographicLib {
      * south, 3north are legal.  0n, 001s, +3n, 61n, 38P are illegal.  INV is a
      * special value for which the returned value of \e is UTMUPS::INVALID.
      **********************************************************************/
-    static void DecodeZone(const std::string& zonestr, int& zone, bool& northp);
+    static void DecodeZone(const std::string& zonestr,
+                           int& zone, bool& northp);
 
     /**
      * Encode a UTM/UPS zone string.
diff --git a/include/GeographicLib/Utility.hpp b/include/GeographicLib/Utility.hpp
index feb5858..9990e47 100644
--- a/include/GeographicLib/Utility.hpp
+++ b/include/GeographicLib/Utility.hpp
@@ -16,6 +16,7 @@
 #include <sstream>
 #include <cctype>
 #include <ctime>
+#include <cstring>
 
 #if defined(_MSC_VER)
 // Squelch warnings about constant conditional expressions and unsafe gmtime
@@ -99,8 +100,8 @@ namespace GeographicLib {
         (1461 * y) / 4 // Julian years converted to days.  Julian year is 365 +
                        // 1/4 = 1461/4 days.
         // Gregorian leap year corrections.  The 2 offset with respect to the
-        // Julian calendar synchronizes the vernal equinox with that at the time
-        // of the Council of Nicea (325 AD).
+        // Julian calendar synchronizes the vernal equinox with that at the
+        // time of the Council of Nicea (325 AD).
         + (greg ? (y / 100) / 4 - (y / 100) + 2 : 0)
         + (153 * m + 2) / 5     // The zero-based start of the m'th month
         + d - 1                 // The zero-based day
@@ -426,7 +427,8 @@ namespace GeographicLib {
      *
      * @tparam T the type of the return value.
      * @param[in] s the string to be converted.
-     * @exception GeographicErr is \e s is not readable as a fraction of type T.
+     * @exception GeographicErr is \e s is not readable as a fraction of type
+     *   T.
      * @return object of type T
      *
      * \note The msys shell under Windows converts arguments which look
@@ -460,6 +462,22 @@ namespace GeographicLib {
     }
 
     /**
+     * Lookup up a character in a char*.
+     *
+     * @param[in] s the char* string to be searched.
+     * @param[in] c the character to look for.
+     * @return the index of the first occurrence character in the string or
+     *   −1 is the character is not present.
+     *
+     * \e c is converted to upper case before search \e s.  Therefore, it is
+     * intended that \e s should not contain any lower case letters.
+     **********************************************************************/
+    static int lookup(const char* s, char c) {
+      const char* p = std::strchr(s, toupper(c));
+      return p != NULL ? int(p - s) : -1;
+    }
+
+    /**
      * Read data of type ExtT from a binary stream to an array of type IntT.
      * The data in the file is in (bigendp ? big : little)-endian format.
      *
@@ -473,8 +491,7 @@ namespace GeographicLib {
      * @exception GeographicErr if the data cannot be read.
      **********************************************************************/
     template<typename ExtT, typename IntT, bool bigendp>
-      static inline void readarray(std::istream& str,
-                                   IntT array[], size_t num) {
+      static void readarray(std::istream& str, IntT array[], size_t num) {
 #if GEOGRAPHICLIB_PRECISION < 4
       if (sizeof(IntT) == sizeof(ExtT) &&
           std::numeric_limits<IntT>::is_integer ==
@@ -525,8 +542,7 @@ namespace GeographicLib {
      * @exception GeographicErr if the data cannot be read.
      **********************************************************************/
     template<typename ExtT, typename IntT, bool bigendp>
-      static inline void readarray(std::istream& str,
-                                   std::vector<IntT>& array) {
+      static void readarray(std::istream& str, std::vector<IntT>& array) {
       if (array.size() > 0)
         readarray<ExtT, IntT, bigendp>(str, &array[0], array.size());
     }
@@ -544,8 +560,8 @@ namespace GeographicLib {
      * @exception GeographicErr if the data cannot be written.
      **********************************************************************/
     template<typename ExtT, typename IntT, bool bigendp>
-      static inline void writearray(std::ostream& str,
-                                    const IntT array[], size_t num) {
+      static void writearray(std::ostream& str, const IntT array[], size_t num)
+    {
 #if GEOGRAPHICLIB_PRECISION < 4
       if (sizeof(IntT) == sizeof(ExtT) &&
           std::numeric_limits<IntT>::is_integer ==
@@ -591,8 +607,7 @@ namespace GeographicLib {
      * @exception GeographicErr if the data cannot be written.
      **********************************************************************/
     template<typename ExtT, typename IntT, bool bigendp>
-      static inline void writearray(std::ostream& str,
-                                   std::vector<IntT>& array) {
+      static void writearray(std::ostream& str, std::vector<IntT>& array) {
       if (array.size() > 0)
         writearray<ExtT, IntT, bigendp>(str, &array[0], array.size());
     }
diff --git a/java/direct/pom.xml b/java/direct/pom.xml
index 303a5fa..a75f7b1 100644
--- a/java/direct/pom.xml
+++ b/java/direct/pom.xml
@@ -9,7 +9,7 @@
   <groupId>net.sf.geographiclib.example</groupId>
   <artifactId>Direct</artifactId>
   <name>Direct</name>
-  <version>1.48-SNAPSHOT</version>
+  <version>1.49-SNAPSHOT</version>
 
   <packaging>jar</packaging>
 
@@ -28,7 +28,7 @@
     <dependency>
       <groupId>net.sf.geographiclib</groupId>
       <artifactId>GeographicLib-Java</artifactId>
-      <version>1.48</version>
+      <version>1.49</version>
     </dependency>
   </dependencies>
 
diff --git a/java/inverse/pom.xml b/java/inverse/pom.xml
index 9eeb2ea..920cee3 100644
--- a/java/inverse/pom.xml
+++ b/java/inverse/pom.xml
@@ -9,7 +9,7 @@
   <groupId>net.sf.geographiclib.example</groupId>
   <artifactId>Inverse</artifactId>
   <name>Inverse</name>
-  <version>1.48-SNAPSHOT</version>
+  <version>1.49-SNAPSHOT</version>
 
   <packaging>jar</packaging>
 
@@ -28,7 +28,7 @@
     <dependency>
       <groupId>net.sf.geographiclib</groupId>
       <artifactId>GeographicLib-Java</artifactId>
-      <version>1.48</version>
+      <version>1.49</version>
     </dependency>
   </dependencies>
 
diff --git a/java/planimeter/pom.xml b/java/planimeter/pom.xml
index 516bda7..06633ea 100644
--- a/java/planimeter/pom.xml
+++ b/java/planimeter/pom.xml
@@ -9,7 +9,7 @@
   <groupId>net.sf.geographiclib.example</groupId>
   <artifactId>Planimeter</artifactId>
   <name>Planimeter</name>
-  <version>1.48-SNAPSHOT</version>
+  <version>1.49-SNAPSHOT</version>
 
   <packaging>jar</packaging>
 
@@ -28,7 +28,7 @@
     <dependency>
       <groupId>net.sf.geographiclib</groupId>
       <artifactId>GeographicLib-Java</artifactId>
-      <version>1.48</version>
+      <version>1.49</version>
     </dependency>
   </dependencies>
 
diff --git a/java/pom.xml b/java/pom.xml
index d0f5d3f..0cf4202 100644
--- a/java/pom.xml
+++ b/java/pom.xml
@@ -8,7 +8,7 @@
 
   <groupId>net.sf.geographiclib</groupId>
   <artifactId>GeographicLib-Java</artifactId>
-  <version>1.48</version>
+  <version>1.49</version>
 
   <packaging>jar</packaging>
 
diff --git a/java/src/main/java/net/sf/geographiclib/Accumulator.java b/java/src/main/java/net/sf/geographiclib/Accumulator.java
index b075f56..a773f4a 100644
--- a/java/src/main/java/net/sf/geographiclib/Accumulator.java
+++ b/java/src/main/java/net/sf/geographiclib/Accumulator.java
@@ -19,8 +19,8 @@ package net.sf.geographiclib;
  * Floating-Point Arithmetic and Fast Robust Geometric Predicates</a>,
  * Discrete & Computational Geometry 18(3) 305–363 (1997).
  * <p>
- * In the documentation of the member functions, <i>sum</i> stands for the value
- * currently held in the accumulator.
+ * In the documentation of the member functions, <i>sum</i> stands for the
+ * value currently held in the accumulator.
  ***********************************************************************/
 public  class Accumulator {
   // _s + _t accumulators for the sum.
diff --git a/java/src/main/java/net/sf/geographiclib/Geodesic.java b/java/src/main/java/net/sf/geographiclib/Geodesic.java
index b3fbea7..265ff20 100644
--- a/java/src/main/java/net/sf/geographiclib/Geodesic.java
+++ b/java/src/main/java/net/sf/geographiclib/Geodesic.java
@@ -575,7 +575,8 @@ public class Geodesic {
    * <i>lat1</i> should be in the range [−90°, 90°].
    **********************************************************************/
   public GeodesicLine GenDirectLine(double lat1, double lon1, double azi1,
-                                    boolean arcmode, double s12_a12, int caps) {
+                                    boolean arcmode, double s12_a12, int caps)
+  {
     azi1 = GeoMath.AngNormalize(azi1);
     double salp1, calp1;
     // Guard against underflow in salp0.  Also -0 is converted to +0.
@@ -682,13 +683,15 @@ public class Geodesic {
     double sbet1, cbet1, sbet2, cbet2, s12x, m12x;
     s12x = m12x = Double.NaN;
 
-    { Pair p = GeoMath.sincosd(lat1); sbet1 = _f1 * p.first; cbet1 = p.second; }
+    { Pair p = GeoMath.sincosd(lat1);
+      sbet1 = _f1 * p.first; cbet1 = p.second; }
     // Ensure cbet1 = +epsilon at poles; doing the fix on beta means that sig12
     // will be <= 2*tiny for two points at the same pole.
     { Pair p = GeoMath.norm(sbet1, cbet1); sbet1 = p.first; cbet1 = p.second; }
     cbet1 = Math.max(tiny_, cbet1);
 
-    { Pair p = GeoMath.sincosd(lat2); sbet2 = _f1 * p.first; cbet2 = p.second; }
+    { Pair p = GeoMath.sincosd(lat2);
+      sbet2 = _f1 * p.first; cbet2 = p.second; }
     // Ensure cbet2 = +epsilon at poles
     { Pair p = GeoMath.norm(sbet2, cbet2); sbet2 = p.first; cbet2 = p.second; }
     cbet2 = Math.max(tiny_, cbet2);
@@ -740,7 +743,8 @@ public class Geodesic {
                                        csig1 * csig2 + ssig1 * ssig2);
       {
         LengthsV v =
-          Lengths(_n, sig12, ssig1, csig1, dn1, ssig2, csig2, dn2, cbet1, cbet2,
+          Lengths(_n, sig12, ssig1, csig1, dn1,
+                  ssig2, csig2, dn2, cbet1, cbet2,
                   outmask | GeodesicMask.DISTANCE | GeodesicMask.REDUCEDLENGTH,
                   C1a, C2a);
         s12x = v.s12b; m12x = v.m12b;
@@ -1382,7 +1386,8 @@ public class Geodesic {
 
   private InverseStartV InverseStart(double sbet1, double cbet1, double dn1,
                                      double sbet2, double cbet2, double dn2,
-                                     double lam12, double slam12, double clam12,
+                                     double lam12,
+                                     double slam12, double clam12,
                                      // Scratch areas of the right size
                                      double C1a[], double C2a[]) {
     // Return a starting point for Newton's method in salp1 and calp1 (function
diff --git a/java/src/main/java/net/sf/geographiclib/GeodesicLine.java b/java/src/main/java/net/sf/geographiclib/GeodesicLine.java
index 757b5f5..58c8495 100644
--- a/java/src/main/java/net/sf/geographiclib/GeodesicLine.java
+++ b/java/src/main/java/net/sf/geographiclib/GeodesicLine.java
@@ -463,7 +463,8 @@ public class GeodesicLine {
         // GeodesicExact.
         //     erri = the error in the inverse solution (nm)
         //     errd = the error in the direct solution (series only) (nm)
-        //     errda = the error in the direct solution (series + 1 Newton) (nm)
+        //     errda = the error in the direct solution
+        //             (series + 1 Newton) (nm)
         //
         //       f     erri  errd errda
         //     -1/5    12e6 1.2e9  69e6
diff --git a/java/src/main/java/net/sf/geographiclib/Gnomonic.java b/java/src/main/java/net/sf/geographiclib/Gnomonic.java
index d3b1f8d..40d5649 100644
--- a/java/src/main/java/net/sf/geographiclib/Gnomonic.java
+++ b/java/src/main/java/net/sf/geographiclib/Gnomonic.java
@@ -56,7 +56,8 @@ package net.sf.geographiclib;
  * maximum deviation (as a true distance) of the corresponding gnomonic line
  * segment (i.e., with the same end points) from the geodesic is<br>
  * <br>
- * (<i>K</i>(<i>T</i>) - <i>K</i>(<i>C</i>)) <i>l</i><sup>2</sup> <i>t</i> / 32.
+ * (<i>K</i>(<i>T</i>) − <i>K</i>(<i>C</i>))
+ * <i>l</i><sup>2</sup> <i>t</i> / 32.
  * <br>
  * <br>
  * where <i>K</i> is the Gaussian curvature.
@@ -172,8 +173,9 @@ public class Gnomonic {
   public GnomonicData Forward(double lat0, double lon0, double lat, double lon)
   {
     GeodesicData inv =
-      _earth.Inverse(lat0, lon0, lat, lon, GeodesicMask.AZIMUTH
-                     | GeodesicMask.GEODESICSCALE | GeodesicMask.REDUCEDLENGTH);
+      _earth.Inverse(lat0, lon0, lat, lon,
+                     GeodesicMask.AZIMUTH | GeodesicMask.GEODESICSCALE |
+                     GeodesicMask.REDUCEDLENGTH);
     GnomonicData fwd =
       new GnomonicData(lat0, lon0, lat, lon, Double.NaN, Double.NaN,
                        inv.azi2, inv.M12);
diff --git a/java/src/main/java/net/sf/geographiclib/PolygonArea.java b/java/src/main/java/net/sf/geographiclib/PolygonArea.java
index 8e5c0ec..1e4ed1a 100644
--- a/java/src/main/java/net/sf/geographiclib/PolygonArea.java
+++ b/java/src/main/java/net/sf/geographiclib/PolygonArea.java
@@ -18,7 +18,8 @@ package net.sf.geographiclib;
  *   <a href="https://doi.org/10.1007/s00190-012-0578-z">
  *   Algorithms for geodesics</a>,
  *   J. Geodesy <b>87</b>, 43–55 (2013)
- *   (<a href="https://geographiclib.sourceforge.io/geod-addenda.html">addenda</a>).
+ *   (<a href="https://geographiclib.sourceforge.io/geod-addenda.html">
+ *   addenda</a>).
  * </ul>
  * <p>
  * This class lets you add vertices one at a time to the polygon.  The area
@@ -225,7 +226,8 @@ public class PolygonArea {
       else if (tempsum.Sum() < 0)
         tempsum.Add(+_area0);
     }
-    return new PolygonResult(_num, _perimetersum.Sum(g.s12), 0 + tempsum.Sum());
+    return
+      new PolygonResult(_num, _perimetersum.Sum(g.s12), 0 + tempsum.Sum());
   }
 
   /**
diff --git a/java/src/main/java/net/sf/geographiclib/package-info.java b/java/src/main/java/net/sf/geographiclib/package-info.java
index db1909f..19ce8b9 100644
--- a/java/src/main/java/net/sf/geographiclib/package-info.java
+++ b/java/src/main/java/net/sf/geographiclib/package-info.java
@@ -1,7 +1,7 @@
 /**
  * <h1>Geodesic routines from GeographicLib implemented in Java</h1>
  * @author Charles F. F. Karney (charles at karney.com)
- * @version 1.48
+ * @version 1.49
  *
  * <p>
  * The documentation for other versions is available at
@@ -29,15 +29,15 @@
  * GeographicLib-Java is part of GeographicLib which available for download at
  * <ul>
  * <li>
- *   <a href="https://sourceforge.net/projects/geographiclib/files/distrib/GeographicLib-1.48.tar.gz">
- *   GeographicLib-1.48.tar.gz</a>
+ *   <a href="https://sourceforge.net/projects/geographiclib/files/distrib/GeographicLib-1.49.tar.gz">
+ *   GeographicLib-1.49.tar.gz</a>
  * <li>
- *   <a href="https://sourceforge.net/projects/geographiclib/files/distrib/GeographicLib-1.48.zip">
- *   GeographicLib-1.48.zip</a>
+ *   <a href="https://sourceforge.net/projects/geographiclib/files/distrib/GeographicLib-1.49.zip">
+ *   GeographicLib-1.49.zip</a>
  * </ul>
  * <p>
  * as either a compressed tar file (tar.gz) or a zip file.  After unpacking
- * the source, the Java library can be found in GeographicLib-1.48/java.  (This
+ * the source, the Java library can be found in GeographicLib-1.49/java.  (This
  * library is completely independent from the rest of GeodegraphicLib.)  The
  * library consists of the files in the src/main/java/net/sf/geographiclib
  * subdirectory.
@@ -50,7 +50,7 @@
  *   <dependency>
  *     <groupId>net.sf.geographiclib</groupId>
  *     <artifactId>GeographicLib-Java</artifactId>
- *     <version>1.48</version>
+ *     <version>1.49</version>
  *   </dependency> }</pre>
  * in your {@code pom.xml}.
  *
@@ -119,9 +119,9 @@
  * some additional packages to your local repository.)  Then compile and run
  * Inverse.java with <pre>
  * cd inverse/src/main/java
- * javac -cp .:../../../../target/GeographicLib-Java-1.48.jar Inverse.java
+ * javac -cp .:../../../../target/GeographicLib-Java-1.49.jar Inverse.java
  * echo -30 0 29.5 179.5 |
- *   java -cp .:../../../../target/GeographicLib-Java-1.48.jar Inverse </pre>
+ *   java -cp .:../../../../target/GeographicLib-Java-1.49.jar Inverse </pre>
  *
  * <h3>Using maven to build and run {@code Inverse.java}</h3>
  * The sample code includes a {@code pom.xml} which specifies
@@ -187,11 +187,11 @@
  *   (<a href="https://geographiclib.sourceforge.io/geod-addenda.html">addenda</a>).
  * <li>
  *   A longer paper on geodesics: C. F. F. Karney,
- *    <a href="https://arxiv.org/abs/1102.1215v1">Geodesics
- *    on an ellipsoid of revolution</a>,
- *    Feb. 2011
- *    (<a href="https://geographiclib.sourceforge.io/geod-addenda.html#geod-errata">
- *    errata</a>).
+ *   <a href="https://arxiv.org/abs/1102.1215v1">Geodesics
+ *   on an ellipsoid of revolution</a>,
+ *   Feb. 2011
+ *   (<a href="https://geographiclib.sourceforge.io/geod-addenda.html#geod-errata">
+ *   errata</a>).
  * <li>
  *   <a href="https://geographiclib.sourceforge.io">
  *   The GeographicLib web site</a>.
@@ -265,6 +265,13 @@
  * <h2>Change log</h2>
  * <ul>
  * <li>
+ *   <a href="https://geographiclib.sourceforge.io/1.47/java">Version 1.49</a>
+ *   (released 2017-10-05)
+ * <ul>
+ * <li>
+ *   Fix code formatting and add two tests.
+ * </ul>
+ * <li>
  *   <a href="https://geographiclib.sourceforge.io/1.47/java">Version 1.48</a>
  *   (released 2017-04-09)
  * <ul>
diff --git a/java/src/test/java/net/sf/geographiclib/GeodesicTest.java b/java/src/test/java/net/sf/geographiclib/GeodesicTest.java
index bdaefde..6d9e293 100644
--- a/java/src/test/java/net/sf/geographiclib/GeodesicTest.java
+++ b/java/src/test/java/net/sf/geographiclib/GeodesicTest.java
@@ -243,8 +243,8 @@ public class GeodesicTest {
     inv = Geodesic.WGS84.Inverse(89.262080389218, 0,
                                  -89.262080389218, 179.992207982775375662);
     assertEquals(inv.s12, 20003925.854, 0.5e-3);
-    inv = Geodesic.WGS84.Inverse(89.333123580033, 0,
-                                 -89.333123580032997687, 179.99295812360148422);
+    inv = Geodesic.WGS84.Inverse(89.333123580033, 0, -89.333123580032997687,
+                                 179.99295812360148422);
     assertEquals(inv.s12, 20003926.881, 0.5e-3);
   }
 
@@ -551,6 +551,26 @@ public class GeodesicTest {
   }
 
   @Test
+  public void GeodSolve76() {
+    // The distance from Wellington and Salamanca (a classic failure of
+    // Vincenty)
+    GeodesicData inv = Geodesic.WGS84.Inverse(-(41+19/60.0), 174+49/60.0,
+                                              40+58/60.0, -(5+30/60.0));
+    assertEquals(inv.azi1, 160.39137649664, 0.5e-11);
+    assertEquals(inv.azi2,  19.50042925176, 0.5e-11);
+    assertEquals(inv.s12,  19960543.857179, 0.5e-6);
+  }
+
+  @Test
+  public void GeodSolve78() {
+    // An example where the NGS calculator fails to converge */
+    GeodesicData inv = Geodesic.WGS84.Inverse(27.2, 0.0, -27.1, 179.5);
+    assertEquals(inv.azi1,  45.82468716758, 0.5e-11);
+    assertEquals(inv.azi2, 134.22776532670, 0.5e-11);
+    assertEquals(inv.s12,  19974354.765767, 0.5e-6);
+  }
+
+  @Test
   public void Planimeter0() {
     // Check fix for pole-encircling bug found 2011-03-16
     double pa[][] = {{89, 0}, {89, 90}, {89, 180}, {89, 270}};
diff --git a/js/GeographicLib.md b/js/GeographicLib.md
index bf63bac..455aa34 100644
--- a/js/GeographicLib.md
+++ b/js/GeographicLib.md
@@ -1,6 +1,6 @@
 ## Geodesic routines from GeographicLib
 
-This documentation applies to version 1.48.
+This documentation applies to version 1.49.
 
 The documentation for other versions is available
 at <tt>https://geographiclib.sourceforge.io/m.nn/js</tt> for versions
@@ -109,6 +109,9 @@ Two examples of this library in use are
 
 ### Change log
 
+* Version 1.49 (released 2017-10-05)
+  * Use explicit test for nonzero real numbers.
+
 * Version 1.48 (released 2017-04-09)
   * Change default range for longitude and azimuth to
     (−180°, 180°] (instead of [−180°, 180°)).
diff --git a/js/README.md b/js/README.md
index 0508085..4dbc5fa 100644
--- a/js/README.md
+++ b/js/README.md
@@ -23,7 +23,7 @@ var GeographicLib = require("geographiclib");
 ## Documentation
 
 Full documentation is provided at
-[https://geographiclib.sourceforge.io/1.48/js/](https://geographiclib.sourceforge.io/1.48/js/).
+[https://geographiclib.sourceforge.io/1.49/js/](https://geographiclib.sourceforge.io/1.49/js/).
 
 ## Examples
 
diff --git a/js/doc/3-examples.md b/js/doc/3-examples.md
index e0afbf1..4aa2863 100644
--- a/js/doc/3-examples.md
+++ b/js/doc/3-examples.md
@@ -145,7 +145,7 @@ the *outmask* parameter, see {@tutorial 2-interface}, "The *outmask* and
 var r = geod.Inverse(40.6, -73.8, 51.6, -0.5, Geodesic.AREA);
 console.log("The area is " + r.S12.toFixed(1) + " m^2");
 ```
-→ `The area is 40041368848742.5 m^2`
+→`The area is 40041368848742.5 m^2`
 
 ### <a name="waypoints"></a>Computing waypoints
 
@@ -251,7 +251,7 @@ console.log("Perimeter/area of Antarctica are " +
             p.perimeter.toFixed(3) + " m / " +
             p.area.toFixed(1) + " m^2.");
 ```
-→ `Perimeter/area of Antarctica are 16831067.893 m / 13662703680020.1 m^2.`
+→`Perimeter/area of Antarctica are 16831067.893 m / 13662703680020.1 m^2.`
 
 If the points of the polygon are being selected interactively, then
 {@link module:GeographicLib/PolygonArea.PolygonArea#TestPoint
@@ -273,4 +273,4 @@ console.log("Start = (" +
             "), azimuth = " +
             DMS.Encode(r.azi1, DMS.MINUTE, 1, DMS.AZIMUTH));
 ```
-→ `Start = (40°36'N, 073°48'W), azimuth = 053°28.2'`
+→`Start = (40°36'N, 073°48'W), azimuth = 053°28.2'`
diff --git a/js/package.json b/js/package.json
index 0d64147..e89e833 100644
--- a/js/package.json
+++ b/js/package.json
@@ -1,6 +1,6 @@
 {
   "name": "geographiclib",
-  "version": "1.48.0",
+  "version": "1.49.0",
   "description":
   "JavaScript implementation of geodesic routines in GeographicLib",
   "main": "geographiclib.js",
diff --git a/js/samples/geod-calc.html b/js/samples/geod-calc.html
index 0a567e0..ee454da 100644
--- a/js/samples/geod-calc.html
+++ b/js/samples/geod-calc.html
@@ -3,31 +3,31 @@
   <head>
     <title>Geodesic calculations for an ellipsoid done right</title>
     <meta name="description"
-	  content="Geodesic calculations for an ellipsoid done right" />
+          content="Geodesic calculations for an ellipsoid done right" />
     <meta name="author" content="Charles F. F. Karney">
     <meta name="keywords"
-	  content="geodesics,
-		   geodesic distance,
-		   geographic distance,
-		   shortest path,
-		   direct geodesic problem,
-		   inverse geodesic problem,
-		   distance and azimuth,
-		   distance and heading,
-		   range and bearing,
-		   geographic area,
-		   geodesic polygon,
-		   spheroidal triangle,
-		   latitude and longitude,
-		   online calculator,
-		   WGS84 ellipsoid,
-		   GeographicLib" />
+          content="geodesics,
+                   geodesic distance,
+                   geographic distance,
+                   shortest path,
+                   direct geodesic problem,
+                   inverse geodesic problem,
+                   distance and azimuth,
+                   distance and heading,
+                   range and bearing,
+                   geographic area,
+                   geodesic polygon,
+                   spheroidal triangle,
+                   latitude and longitude,
+                   online calculator,
+                   WGS84 ellipsoid,
+                   GeographicLib" />
     <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
     <!--
-	Full URL for latest version of geographiclib.min.js is
-	https://geographiclib.sourceforge.io/scripts/geographiclib.min.js
-	URL for a specific version is, for example,
-	https://geographiclib.sourceforge.io/scripts/geographiclib-1.45.min.js
+        Full URL for latest version of geographiclib.min.js is
+        https://geographiclib.sourceforge.io/scripts/geographiclib.min.js
+        URL for a specific version is, for example,
+        https://geographiclib.sourceforge.io/scripts/geographiclib-1.45.min.js
       -->
     <script type="text/javascript" src="geographiclib.min.js">
     </script>
@@ -230,25 +230,25 @@ function GeodesicArea(input, polyline) {
       This page illustrates the geodesic routines available in
       JavaScript package
       <a href="https://www.npmjs.com/package/geographiclib">
-	geographiclib, the geodesic routines in GeographicLib</a>
+        geographiclib, the geodesic routines in GeographicLib</a>
       (<a href="https://geographiclib.sourceforge.io/html/js/">
-	documentation</a>).
+        documentation</a>).
       The algorithms are considerably more accurate than Vincenty's
       method, and offer more functionality (an inverse method which
       never fails to converge, differential properties of the geodesic,
       and the area under a geodesic).  The algorithms are derived in
       <blockquote>
-	Charles F. F. Karney,<br>
-	<a href="https://doi.org/10.1007/s00190-012-0578-z">
-	  <i>Algorithms for geodesics</i></a>,<br>
-	J. Geodesy <b>87</b>(1), 43–55 (Jan. 2013);<br>
-	DOI:
-	<a href="https://doi.org/10.1007/s00190-012-0578-z">
-	  10.1007/s00190-012-0578-z</a>
-	(<a href="https://doi.org/10.1007/s00190-012-0578-z">pdf</a>);
-	addenda:
-	<a href="https://geographiclib.sourceforge.io/geod-addenda.html">
-	  geod-addenda.html</a>.
+        Charles F. F. Karney,<br>
+        <a href="https://doi.org/10.1007/s00190-012-0578-z">
+          <i>Algorithms for geodesics</i></a>,<br>
+        J. Geodesy <b>87</b>(1), 43–55 (Jan. 2013);<br>
+        DOI:
+        <a href="https://doi.org/10.1007/s00190-012-0578-z">
+          10.1007/s00190-012-0578-z</a>
+        (<a href="https://doi.org/10.1007/s00190-012-0578-z">pdf</a>);
+        addenda:
+        <a href="https://geographiclib.sourceforge.io/geod-addenda.html">
+          geod-addenda.html</a>.
       </blockquote>
       This page just provides a basic interface.  Enter latitudes,
       longitudes, and azimuths as degrees and distances as meters using
@@ -261,111 +261,111 @@ function GeodesicArea(input, polyline) {
       Google Maps is given <a href="geod-google.html">here</a>.  Basic
       online tools which provide similar capabilities are
       <a href="https://geographiclib.sourceforge.io/cgi-bin/GeodSolve">
-	GeodSolve</a>
+        GeodSolve</a>
       and
       <a href="https://geographiclib.sourceforge.io/cgi-bin/Planimeter">
-	Planimeter</a>;
+        Planimeter</a>;
       these call a C++ backend.  This page uses version
       <script type="text/javascript">
-	document.write(GeographicLib.Constants.version_string);
+        document.write(GeographicLib.Constants.version_string);
       </script>
       of the geodesic code.
     <p>
       Jump to:
       <ul>
-	<li><a href="#inverse">Inverse problem</a></li>
-	<li><a href="#direct">Direct problem</a></li>
-	<li><a href="#path">Geodesic path</a></li>
-	<li><a href="#area">Polygon area</a></li>
-	<li><a href="geod-google.html">Geodesic lines, circles, and
-	envelopes in Google Maps</a></li>
+        <li><a href="#inverse">Inverse problem</a></li>
+        <li><a href="#direct">Direct problem</a></li>
+        <li><a href="#path">Geodesic path</a></li>
+        <li><a href="#area">Polygon area</a></li>
+        <li><a href="geod-google.html">Geodesic lines, circles, and
+        envelopes in Google Maps</a></li>
       </ul>
     </p>
     <hr>
     <form name="inverse" >
       <h3><a class="anchor" id="inverse">Inverse problem</h3>
       <p>
-	Find the shortest path between two points on the earth.  The
-	path is characterized by its length <i>s12</i> and its azimuth
-	at the two ends <i>azi1</i> and <i>azi2</i>.  See
-	<a href="https://geographiclib.sourceforge.io/html/GeodSolve.1.html">
-	  GeodSolve(1)</a>
-	for the definition of the
-	quantities <i>a12</i>, <i>m12</i>, <i>M12</i>, <i>M21</i>,
-	and <i>S12</i>.  The sample calculation finds the shortest path
-	between Wellington, New Zealand, and Salamanca, Spain.  To
-	perform the calculation, press the “COMPUTE” button.
+        Find the shortest path between two points on the earth.  The
+        path is characterized by its length <i>s12</i> and its azimuth
+        at the two ends <i>azi1</i> and <i>azi2</i>.  See
+        <a href="https://geographiclib.sourceforge.io/html/GeodSolve.1.html">
+          GeodSolve(1)</a>
+        for the definition of the
+        quantities <i>a12</i>, <i>m12</i>, <i>M12</i>, <i>M21</i>,
+        and <i>S12</i>.  The sample calculation finds the shortest path
+        between Wellington, New Zealand, and Salamanca, Spain.  To
+        perform the calculation, press the “COMPUTE” button.
       </p>
       <p>Enter <i>“lat1 lon1 lat2 lon2”</i>:</p>
       <p>input:
         <input name="input" size=72 value="-41.32 174.81 40.96 -5.50" />
       </p>
       <p>
-	Output format:  <label for="ig">
-	  <input type="radio" value="g" name="format" id="ig" checked>
-	  decimal degrees
-	</label> 
-	<label for="id">
-	  <input type="radio" value="d" name="format" id="id">
-	  degrees minutes seconds
-	</label><br>
-	Output precision:  <select name="prec" size=1>
-	  <option value='0'> 1m 0.00001d 0.1"</option>
-	  <option value='1'> 100mm 0.01"</option>
-	  <option value='2'> 10mm 0.001"</option>
-	  <option value='3' selected> 1mm 0.0001"</option>
-	  <option value='4'> 100um 0.00001"</option>
-	  <option value='5'> 10um 0.000001"</option>
-	  <option value='6'> 1um 0.0000001"</option>
-	  <option value='7'> 100nm 0.00000001"</option>
-	  <option value='8'> 10nm 0.000000001"</option>
-	  <option value='9'> 1nm 0.0000000001"</option>
-	</select>
+        Output format:  <label for="ig">
+          <input type="radio" value="g" name="format" id="ig" checked>
+          decimal degrees
+        </label> 
+        <label for="id">
+          <input type="radio" value="d" name="format" id="id">
+          degrees minutes seconds
+        </label><br>
+        Output precision:  <select name="prec" size=1>
+          <option value='0'> 1m 0.00001d 0.1"</option>
+          <option value='1'> 100mm 0.01"</option>
+          <option value='2'> 10mm 0.001"</option>
+          <option value='3' selected> 1mm 0.0001"</option>
+          <option value='4'> 100um 0.00001"</option>
+          <option value='5'> 10um 0.000001"</option>
+          <option value='6'> 1um 0.0000001"</option>
+          <option value='7'> 100nm 0.00000001"</option>
+          <option value='8'> 10nm 0.000000001"</option>
+          <option value='9'> 1nm 0.0000000001"</option>
+        </select>
       </p>
       <p>
         <input type="button" value="COMPUTE"
-	       onclick="var t = GeodesicInverse(document.inverse.input.value,
-			        document.inverse.format[1].checked,
-				document.inverse.prec.selectedIndex);
-			document.inverse.status.value = t.status;
-			document.inverse.p1.value = t.p1;
-			document.inverse.p2.value = t.p2;
-			document.inverse.s12.value = t.s12;
-			document.inverse.a12.value = t.a12;
-			document.inverse.m12.value = t.m12;
-			document.inverse.M1221.value = t.M1221;
-			document.inverse.S12.value = t.S12;" />
-      </p>
-      <p>
-	status:
+               onclick="var t = GeodesicInverse(document.inverse.input.value,
+                                document.inverse.format[1].checked,
+                                document.inverse.prec.selectedIndex);
+                        document.inverse.status.value = t.status;
+                        document.inverse.p1.value = t.p1;
+                        document.inverse.p2.value = t.p2;
+                        document.inverse.s12.value = t.s12;
+                        document.inverse.a12.value = t.a12;
+                        document.inverse.m12.value = t.m12;
+                        document.inverse.M1221.value = t.M1221;
+                        document.inverse.S12.value = t.S12;" />
+      </p>
+      <p>
+        status:
         <input name="status" size=50 readonly />
       </p>
       <p>
-	lat1 lon1 <font color='blue'>azi1</font>:
+        lat1 lon1 <font color='blue'>azi1</font>:
         <input name="p1" size=75 readonly />
       </p>
       <p>
-	lat2 lon2 <font color='blue'>azi2</font>:
+        lat2 lon2 <font color='blue'>azi2</font>:
         <input name="p2" size=75 readonly />
       </p>
       <p>
-	<font color='blue'>s12</font>:
+        <font color='blue'>s12</font>:
         <input name="s12" size=25 readonly />
       </p>
       <p>
-	<font color='blue'>a12</font>:
+        <font color='blue'>a12</font>:
         <input name="a12" size=25 readonly />
       </p>
       <p>
-	<font color='blue'>m12</font>:
+        <font color='blue'>m12</font>:
         <input name="m12" size=25 readonly />
       </p>
       <p>
-	<font color='blue'>M12 M21</font>:
+        <font color='blue'>M12 M21</font>:
         <input name="M1221" size=50 readonly />
       </p>
       <p>
-	<font color='blue'>S12</font>:
+        <font color='blue'>S12</font>:
         <input name="S12" size=25 readonly />
       </p>
     </form>
@@ -373,88 +373,88 @@ function GeodesicArea(input, polyline) {
     <form name="direct">
       <h3><a class="anchor" id="direct">Direct problem</h3>
       <p>
-	Find the destination traveling a given distance along a geodesic
-	with a given azimuth at the starting point.  The destination is
-	characterized by its position <i>lat2, lon2</i> and its azimuth
-	at the destination <i>azi2</i>.  See
-	<a href="https://geographiclib.sourceforge.io/html/GeodSolve.1.html">
-	  GeodSolve(1)</a>
-	for the definition of the
-	quantities <i>a12</i>, <i>m12</i>, <i>M12</i>, <i>M21</i>,
-	and <i>S12</i>.  The sample calculation shows the result of
-	travelling 10000 km NE from JFK airport.  To perform the
-	calculation, press the “COMPUTE” button.
+        Find the destination traveling a given distance along a geodesic
+        with a given azimuth at the starting point.  The destination is
+        characterized by its position <i>lat2, lon2</i> and its azimuth
+        at the destination <i>azi2</i>.  See
+        <a href="https://geographiclib.sourceforge.io/html/GeodSolve.1.html">
+          GeodSolve(1)</a>
+        for the definition of the
+        quantities <i>a12</i>, <i>m12</i>, <i>M12</i>, <i>M21</i>,
+        and <i>S12</i>.  The sample calculation shows the result of
+        travelling 10000 km NE from JFK airport.  To perform the
+        calculation, press the “COMPUTE” button.
       </p>
       <p>Enter <i>“lat1 lon1 azi1 s12”</i>:</p>
       <p>input:
         <input name="input" size=72 value="40.6 -73.8 45 10000e3" />
       </p>
       <p>
-	Output format:  <label for="dg">
-	  <input type="radio" value="g" name="format" id="dg" checked>
-	  decimal degrees
-	</label> 
-	<label for="dd">
-	  <input type="radio" value="d" name="format" id="dd">
-	  degrees minutes seconds
-	</label><br>
-	Output precision:  <select name="prec" size=1>
-	  <option value='0'> 1m 0.00001d 0.1"</option>
-	  <option value='1'> 100mm 0.01"</option>
-	  <option value='2'> 10mm 0.001"</option>
-	  <option value='3' selected> 1mm 0.0001"</option>
-	  <option value='4'> 100um 0.00001"</option>
-	  <option value='5'> 10um 0.000001"</option>
-	  <option value='6'> 1um 0.0000001"</option>
-	  <option value='7'> 100nm 0.00000001"</option>
-	  <option value='8'> 10nm 0.000000001"</option>
-	  <option value='9'> 1nm 0.0000000001"</option>
-	</select>
+        Output format:  <label for="dg">
+          <input type="radio" value="g" name="format" id="dg" checked>
+          decimal degrees
+        </label> 
+        <label for="dd">
+          <input type="radio" value="d" name="format" id="dd">
+          degrees minutes seconds
+        </label><br>
+        Output precision:  <select name="prec" size=1>
+          <option value='0'> 1m 0.00001d 0.1"</option>
+          <option value='1'> 100mm 0.01"</option>
+          <option value='2'> 10mm 0.001"</option>
+          <option value='3' selected> 1mm 0.0001"</option>
+          <option value='4'> 100um 0.00001"</option>
+          <option value='5'> 10um 0.000001"</option>
+          <option value='6'> 1um 0.0000001"</option>
+          <option value='7'> 100nm 0.00000001"</option>
+          <option value='8'> 10nm 0.000000001"</option>
+          <option value='9'> 1nm 0.0000000001"</option>
+        </select>
       </p>
       <p>
         <input type="button" value="COMPUTE"
-	       onclick="var t = GeodesicDirect(document.direct.input.value,
-			        document.direct.format[1].checked,
-				document.direct.prec.selectedIndex);
-			document.direct.status.value = t.status;
-			document.direct.p1.value = t.p1;
-			document.direct.p2.value = t.p2;
-			document.direct.s12.value = t.s12;
-			document.direct.a12.value = t.a12;
-			document.direct.m12.value = t.m12;
-			document.direct.M1221.value = t.M1221;
-			document.direct.S12.value = t.S12;" />
-      </p>
-      <p>
-	status:
+               onclick="var t = GeodesicDirect(document.direct.input.value,
+                                document.direct.format[1].checked,
+                                document.direct.prec.selectedIndex);
+                        document.direct.status.value = t.status;
+                        document.direct.p1.value = t.p1;
+                        document.direct.p2.value = t.p2;
+                        document.direct.s12.value = t.s12;
+                        document.direct.a12.value = t.a12;
+                        document.direct.m12.value = t.m12;
+                        document.direct.M1221.value = t.M1221;
+                        document.direct.S12.value = t.S12;" />
+      </p>
+      <p>
+        status:
         <input name="status" size=50 readonly />
       </p>
       <p>
-	lat1 lon1 azi1:
+        lat1 lon1 azi1:
         <input name="p1" size=75 readonly />
       </p>
       <p>
-	<font color='blue'>lat2 lon2 azi2</font>:
+        <font color='blue'>lat2 lon2 azi2</font>:
         <input name="p2" size=75 readonly />
       </p>
       <p>
-	s12:
+        s12:
         <input name="s12" size=25 readonly />
       </p>
       <p>
-	<font color='blue'>a12</font>:
+        <font color='blue'>a12</font>:
         <input name="a12" size=25 readonly />
       </p>
       <p>
-	<font color='blue'>m12</font>:
+        <font color='blue'>m12</font>:
         <input name="m12" size=25 readonly />
       </p>
       <p>
-	<font color='blue'>M12 M21</font>:
+        <font color='blue'>M12 M21</font>:
         <input name="M1221" size=50 readonly />
       </p>
       <p>
-	<font color='blue'>S12</font>:
+        <font color='blue'>S12</font>:
         <input name="S12" size=25 readonly />
       </p>
     </form>
@@ -462,57 +462,57 @@ function GeodesicArea(input, polyline) {
     <form name="path">
       <h3><a class="anchor" id="path">Geodesic path</h3>
       <p>
-	Find intermediate points along a geodesic.  In addition to
-	specifying the endpoints, give <i>ds12</i>, the maximum distance
-	between the intermediate points and <i>maxk</i>, the maximum
-	number of intervals the geodesic is broken into.  The output
-	gives a sequence of positions <i>lat, lon</i> together with the
-	corresponding azimuths <i>azi</i>.  The sample shows the path
-	from JFK to Singapore's Changi Airport at about 1000 km
-	intervals.  (In this example, the path taken by Google Earth
-	deviates from the shortest path by about 2.9 km.)  To perform
-	the calculation, press the “COMPUTE” button.
+        Find intermediate points along a geodesic.  In addition to
+        specifying the endpoints, give <i>ds12</i>, the maximum distance
+        between the intermediate points and <i>maxk</i>, the maximum
+        number of intervals the geodesic is broken into.  The output
+        gives a sequence of positions <i>lat, lon</i> together with the
+        corresponding azimuths <i>azi</i>.  The sample shows the path
+        from JFK to Singapore's Changi Airport at about 1000 km
+        intervals.  (In this example, the path taken by Google Earth
+        deviates from the shortest path by about 2.9 km.)  To perform
+        the calculation, press the “COMPUTE” button.
       </p>
       <p>Enter <i>“lat1 lon1 lat2 lon2 ds12 maxk”</i>:</p>
       <p>input:
         <input name="input" size=72 value="40.6 -73.8 1.4 104 1000e3 20" />
       </p>
       <p>
-	Output format:  <label for="pg">
-	  <input type="radio" value="g" name="format" id="pg" checked>
-	  decimal degrees
-	</label> 
-	<label for="pd">
-	  <input type="radio" value="d" name="format" id="pd">
-	  degrees minutes seconds
-	</label><br>
-	Output precision:  <select name="prec" size=1>
-	  <option value='0' selected> 1m 0.00001d 0.1"</option>
-	  <option value='1'> 100mm 0.01"</option>
-	  <option value='2'> 10mm 0.001"</option>
-	  <option value='3'> 1mm 0.0001"</option>
-	  <option value='4'> 100um 0.00001"</option>
-	  <option value='5'> 10um 0.000001"</option>
-	  <option value='6'> 1um 0.0000001"</option>
-	  <option value='7'> 100nm 0.00000001"</option>
-	  <option value='8'> 10nm 0.000000001"</option>
-	  <option value='9'> 1nm 0.0000000001"</option>
-	</select>
+        Output format:  <label for="pg">
+          <input type="radio" value="g" name="format" id="pg" checked>
+          decimal degrees
+        </label> 
+        <label for="pd">
+          <input type="radio" value="d" name="format" id="pd">
+          degrees minutes seconds
+        </label><br>
+        Output precision:  <select name="prec" size=1>
+          <option value='0' selected> 1m 0.00001d 0.1"</option>
+          <option value='1'> 100mm 0.01"</option>
+          <option value='2'> 10mm 0.001"</option>
+          <option value='3'> 1mm 0.0001"</option>
+          <option value='4'> 100um 0.00001"</option>
+          <option value='5'> 10um 0.000001"</option>
+          <option value='6'> 1um 0.0000001"</option>
+          <option value='7'> 100nm 0.00000001"</option>
+          <option value='8'> 10nm 0.000000001"</option>
+          <option value='9'> 1nm 0.0000000001"</option>
+        </select>
       </p>
       <p>
         <input type="button" value="COMPUTE"
-	       onclick="var t = GeodesicInversePath(document.path.input.value,
-			        document.path.format[1].checked,
-				document.path.prec.selectedIndex);
-			document.path.status.value = t.status;
-			document.path.points.value = t.points;" />
+               onclick="var t = GeodesicInversePath(document.path.input.value,
+                                document.path.format[1].checked,
+                                document.path.prec.selectedIndex);
+                        document.path.status.value = t.status;
+                        document.path.points.value = t.points;" />
       </p>
       <p>
-	status:
+        status:
         <input name="status" size=50 readonly />
       </p>
       <p>
-	points (lat lon azi):<br>
+        points (lat lon azi):<br>
         <textarea name="points" cols=70 rows=21 readonly></textarea>
       </p>
     </form>
@@ -520,19 +520,19 @@ function GeodesicArea(input, polyline) {
     <form name="area">
       <h3><a class="anchor" id="area">Polygon area</h3>
       <p>
-	Find the perimeter and area of a polygon whose sides are
-	geodesics.  The polygon must be simple (i.e., must not intersect
-	itself).  (There's no need to ensure that the polygon is
-	closed.)  Counter-clockwise traversal of the polygon results in
-	a positive area.  The polygon can encircle one or both poles.
-	The sample gives the approximate perimeter (in m) and area (in
-	m<sup>2</sup>) of Antarctica.  (For this example, Google Earth
-	Pro returns an area which is 30 times too large!  However this
-	is a little unfair, since Google Earth has no concept of
-	polygons which encircle a pole.)  If the <i>polyline</i> option
-	is selected then just the length of the line joining the points
-	is returned.  To perform the calculation, press the
-	“COMPUTE” button.
+        Find the perimeter and area of a polygon whose sides are
+        geodesics.  The polygon must be simple (i.e., must not intersect
+        itself).  (There's no need to ensure that the polygon is
+        closed.)  Counter-clockwise traversal of the polygon results in
+        a positive area.  The polygon can encircle one or both poles.
+        The sample gives the approximate perimeter (in m) and area (in
+        m<sup>2</sup>) of Antarctica.  (For this example, Google Earth
+        Pro returns an area which is 30 times too large!  However this
+        is a little unfair, since Google Earth has no concept of
+        polygons which encircle a pole.)  If the <i>polyline</i> option
+        is selected then just the length of the line joining the points
+        is returned.  To perform the calculation, press the
+        “COMPUTE” button.
       </p>
       <p>Enter points, one per line, as <i>“lat lon”</i>:</p>
       <p>points (lat lon):<br>
@@ -557,28 +557,28 @@ function GeodesicArea(input, polyline) {
 </textarea>
       </p>
       <p>
-	Treat points as:  <label for="lg">
-	  <input type="radio" value="p" name="polyline" id="lg" checked>
-	  polygon
-	</label> 
-	<label for="ll">
-	  <input type="radio" value="l" name="polyline" id="ll">
-	  polyline
-	</label>
+        Treat points as:  <label for="lg">
+          <input type="radio" value="p" name="polyline" id="lg" checked>
+          polygon
+        </label> 
+        <label for="ll">
+          <input type="radio" value="l" name="polyline" id="ll">
+          polyline
+        </label>
       </p>
       <p>
         <input type="button" value="COMPUTE"
-	       onclick="var t = GeodesicArea(document.area.input.value,
-			document.area.polyline[1].checked);
-			document.area.status.value = t.status;
-			document.area.area.value = t.area;" />
+               onclick="var t = GeodesicArea(document.area.input.value,
+                        document.area.polyline[1].checked);
+                        document.area.status.value = t.status;
+                        document.area.area.value = t.area;" />
       </p>
       <p>
-	status:
+        status:
         <input name="status" size=50 readonly />
       </p>
       <p>
-	number perimeter area:
+        number perimeter area:
         <input name="area" size=55 readonly />
       </p>
     </form>
diff --git a/js/samples/geod-google-instructions.html b/js/samples/geod-google-instructions.html
index 5da0b26..10c29d2 100644
--- a/js/samples/geod-google-instructions.html
+++ b/js/samples/geod-google-instructions.html
@@ -5,26 +5,26 @@
       Geodesic lines, circles, envelopes in Google Maps (instructions)
     </title>
     <meta name="description"
-	  content="Geodesic lines, circles,
-		   envelopes in Google Maps (instructions)" />
+          content="Geodesic lines, circles,
+                   envelopes in Google Maps (instructions)" />
     <meta name="author" content="Charles F. F. Karney">
     <meta name="keywords"
-	  content="geodesics,
-		   geodesic distance,
-		   geographic distance,
-		   shortest path,
-		   direct geodesic problem,
-		   inverse geodesic problem,
-		   distance and azimuth,
-		   distance and heading,
-		   range and bearing,
-		   geographic circle,
-		   geodesic envelope,
-		   geodesic astroid,
-		   latitude and longitude,
-		   Google Maps,
-		   WGS84 ellipsoid,
-		   GeographicLib" />
+          content="geodesics,
+                   geodesic distance,
+                   geographic distance,
+                   shortest path,
+                   direct geodesic problem,
+                   inverse geodesic problem,
+                   distance and azimuth,
+                   distance and heading,
+                   range and bearing,
+                   geographic circle,
+                   geodesic envelope,
+                   geodesic astroid,
+                   latitude and longitude,
+                   Google Maps,
+                   WGS84 ellipsoid,
+                   GeographicLib" />
     <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
   </head>
   <body>
@@ -36,34 +36,34 @@
       accurate ellipsoidal geodesics on Google Maps.  You can specify the
       geodesic in one of two forms:
       <ul>
-	<li>
-	  The <b>direct</b> problem: specify a starting point, an
-	  azimuth and a distance as <i>lat1 lon1 azi1 s12</i> as degrees
-	  and meters.
-	<li>
-	  The <b>inverse</b> problem: specify the two end points
-	  as <i>lat1 lon1 lat2 lon2</i> as degrees; this finds the
-	  shortest path between the two points.
+        <li>
+          The <b>direct</b> problem: specify a starting point, an
+          azimuth and a distance as <i>lat1 lon1 azi1 s12</i> as degrees
+          and meters.
+        <li>
+          The <b>inverse</b> problem: specify the two end points
+          as <i>lat1 lon1 lat2 lon2</i> as degrees; this finds the
+          shortest path between the two points.
       </ul>
       (Angles may be entered as decimal degrees or as degrees, minutes,
       and seconds, e.g. -20.51125, 20°30′40.5″S,
       S20d30'40.5", or -20:30:40.5.)  Click on the
       corresponding "compute" button.  The display then shows
       <ul>
-	<li>The requested geodesic as a <font color="blue">blue
-	  line</font>; the WGS84 ellipsoid model is used.
-	<li>The geodesic circle as a <font color="green">green
-	  curve</font>; this shows the locus of points a
-	  distance <i>s12</i> from <i>lat1, lon1</i>.
-	<li>The geodesic envelopes as <font color="red">red
-	  curves</font>; all the geodesics emanating from <i>lat1,
-	  lon1</i> are tangent to the envelopes (providing they are
-	  extended far enough).  The number of solutions to the inverse
-	  problem changes depending on whether <i>lat2, lon2</i> lies
-	  inside the envelopes.  For example, there are four (resp. two)
-	  approximately hemispheroidal geodesics if this point lies
-	  inside (resp. outside) the inner envelope (only one of which
-	  is a shortest path).
+        <li>The requested geodesic as a <font color="blue">blue
+          line</font>; the WGS84 ellipsoid model is used.
+        <li>The geodesic circle as a <font color="green">green
+          curve</font>; this shows the locus of points a
+          distance <i>s12</i> from <i>lat1, lon1</i>.
+        <li>The geodesic envelopes as <font color="red">red
+          curves</font>; all the geodesics emanating from <i>lat1,
+          lon1</i> are tangent to the envelopes (providing they are
+          extended far enough).  The number of solutions to the inverse
+          problem changes depending on whether <i>lat2, lon2</i> lies
+          inside the envelopes.  For example, there are four (resp. two)
+          approximately hemispheroidal geodesics if this point lies
+          inside (resp. outside) the inner envelope (only one of which
+          is a shortest path).
       </ul>
     </p>
     <p>
@@ -85,36 +85,36 @@
       and seconds.  Basic online tools which provide similar capabilities
       are
       <a href="https://geographiclib.sourceforge.io/cgi-bin/GeodSolve">
-	GeodSolve</a>
+        GeodSolve</a>
       and
       <a href="https://geographiclib.sourceforge.io/cgi-bin/Planimeter">
-	Planimeter</a>;
+        Planimeter</a>;
       these call a C++ backend.
     </p>
     <p>
       The JavaScript code for computing the geodesic lines, circles, and
       envelopes available in the JavaScript package
       <a href="https://www.npmjs.com/package/geographiclib">
-	geographiclib, the geodesic routines in GeographicLib</a>
+        geographiclib, the geodesic routines in GeographicLib</a>
       (<a href="https://geographiclib.sourceforge.io/html/js/">
-	documentation</a>).  The algorithms are derived in
+        documentation</a>).  The algorithms are derived in
       <blockquote>
-	Charles F. F. Karney,<br>
-	<a href="https://doi.org/10.1007/s00190-012-0578-z">
-	  <i>Algorithms for geodesics</i></a>,<br>
-	J. Geodesy <b>87</b>(1), 43–55 (Jan. 2013);<br>
-	DOI:
-	<a href="https://doi.org/10.1007/s00190-012-0578-z">
-	  10.1007/s00190-012-0578-z</a>
-	(<a href="https://doi.org/10.1007/s00190-012-0578-z">pdf</a>);<br>
-	addenda:
-	<a href="https://geographiclib.sourceforge.io/geod-addenda.html">
-	  geod-addenda.html</a>.
+        Charles F. F. Karney,<br>
+        <a href="https://doi.org/10.1007/s00190-012-0578-z">
+          <i>Algorithms for geodesics</i></a>,<br>
+        J. Geodesy <b>87</b>(1), 43–55 (Jan. 2013);<br>
+        DOI:
+        <a href="https://doi.org/10.1007/s00190-012-0578-z">
+          10.1007/s00190-012-0578-z</a>
+        (<a href="https://doi.org/10.1007/s00190-012-0578-z">pdf</a>);<br>
+        addenda:
+        <a href="https://geographiclib.sourceforge.io/geod-addenda.html">
+          geod-addenda.html</a>.
       </blockquote>
       In putting together this Google Maps demonstration, I started with
       the sample code
       <a href="https://developers.google.com/maps/documentation/javascript/examples/geometry-headings">
-	geometry-headings</a>.
+        geometry-headings</a>.
     </p>
     <hr>
     <address>Charles Karney
diff --git a/js/samples/geod-google.html b/js/samples/geod-google.html
index 1df631e..c622956 100644
--- a/js/samples/geod-google.html
+++ b/js/samples/geod-google.html
@@ -4,25 +4,25 @@
     <meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
     <title>Geodesic lines, circles, envelopes in Google Maps</title>
     <meta name="description"
-	  content="Geodesic lines, circles, envelopes in Google Maps" />
+          content="Geodesic lines, circles, envelopes in Google Maps" />
     <meta name="author" content="Charles F. F. Karney">
     <meta name="keywords"
-	  content="geodesics,
-		   geodesic distance,
-		   geographic distance,
-		   shortest path,
-		   direct geodesic problem,
-		   inverse geodesic problem,
-		   distance and azimuth,
-		   distance and heading,
-		   range and bearing,
-		   geographic circle,
-		   geodesic envelope,
-		   geodesic astroid,
-		   latitude and longitude,
-		   Google Maps,
-		   WGS84 ellipsoid,
-		   GeographicLib" />
+          content="geodesics,
+                   geodesic distance,
+                   geographic distance,
+                   shortest path,
+                   direct geodesic problem,
+                   inverse geodesic problem,
+                   distance and azimuth,
+                   distance and heading,
+                   range and bearing,
+                   geographic circle,
+                   geodesic envelope,
+                   geodesic astroid,
+                   latitude and longitude,
+                   Google Maps,
+                   WGS84 ellipsoid,
+                   GeographicLib" />
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
     <style>
       html, body, #map-canvas {
@@ -32,22 +32,22 @@
       }
     </style>
     <!--
-	Full URL for latest version of geographiclib.min.js is
-	https://geographiclib.sourceforge.io/scripts/geographiclib.min.js
-	URL for a specific version is, for example,
-	https://geographiclib.sourceforge.io/scripts/geographiclib-1.45.min.js
+        Full URL for latest version of geographiclib.min.js is
+        https://geographiclib.sourceforge.io/scripts/geographiclib.min.js
+        URL for a specific version is, for example,
+        https://geographiclib.sourceforge.io/scripts/geographiclib-1.45.min.js
       -->
     <script type="text/javascript" src="geographiclib.min.js">
     </script>
     <!--
-	This API key is restricted to geographiclib.sourceforge.io and
-	geographiclib.sourceforge.net.  If you want to deploy this
-	facility or one based on it on another computer, that you will
-	need to acquire your own API key from Google, see
-	https://developers.google.com/maps/documentation/javascript/get-api-key
+        This API key is restricted to geographiclib.sourceforge.io and
+        geographiclib.sourceforge.net.  If you want to deploy this
+        facility or one based on it on another computer, that you will
+        need to acquire your own API key from Google, see
+        https://developers.google.com/maps/documentation/javascript/get-api-key
       -->
     <script type="text/javascript"
-	    src="https://maps.googleapis.com/maps/api/js?key=AIzaSyC5ITbit5GimGMxQLncpqetCn1QR-sbW_g">
+            src="https://maps.googleapis.com/maps/api/js?key=AIzaSyC5ITbit5GimGMxQLncpqetCn1QR-sbW_g">
     </script>
     <script type="text/javascript">
 "use strict";
@@ -296,44 +296,44 @@ function clearPaths() {
   </head>
   <body onload="initialize()">
     <div id="map-canvas"
-	 style="position:relative; border: 1px solid black; width:99.5%;
-	 height:72%;">
+         style="position:relative; border: 1px solid black; width:99.5%;
+         height:72%;">
     </div>
     <div>
       <p>
-	 Direct:  
-	<input id="inputb" size=60 value="41°19'S 174°49'E 135° 60000e3" />
-	<input type="button" value="compute"
-	       onclick="var t = GeodesicDirect(document.getElementById('inputb').value);
-			document.getElementById('status').value = t.status;
-			document.getElementById('p1').value = t.p1;
-			document.getElementById('p2').value = t.p2;
-			document.getElementById('s12').value = t.s12;" />
+         Direct:  
+        <input id="inputb" size=60 value="41°19'S 174°49'E 135° 60000e3" />
+        <input type="button" value="compute"
+               onclick="var t = GeodesicDirect(document.getElementById('inputb').value);
+                        document.getElementById('status').value = t.status;
+                        document.getElementById('p1').value = t.p1;
+                        document.getElementById('p2').value = t.p2;
+                        document.getElementById('s12').value = t.s12;" />
       </p>
       <p>
-	 Inverse:
-	<input id="inputa" size=60 value="41°19'S 174°49'E 40°58'N 5°30'W" />
-	<input type="button" value="compute"
-	       onclick="var t = GeodesicInverse(document.getElementById('inputa').value);
-			document.getElementById('status').value = t.status;
-			document.getElementById('p1').value = t.p1;
-			document.getElementById('p2').value = t.p2;
-			document.getElementById('s12').value = t.s12;" />
+         Inverse:
+        <input id="inputa" size=60 value="41°19'S 174°49'E 40°58'N 5°30'W" />
+        <input type="button" value="compute"
+               onclick="var t = GeodesicInverse(document.getElementById('inputa').value);
+                        document.getElementById('status').value = t.status;
+                        document.getElementById('p1').value = t.p1;
+                        document.getElementById('p2').value = t.p2;
+                        document.getElementById('s12').value = t.s12;" />
       </p>
       <p>
-	 lat1 lon1 azi1: <input type="text" "readonly" id="p1" size=60>
+         lat1 lon1 azi1: <input type="text" "readonly" id="p1" size=60>
       </p>
       <p>
-	 lat2 lon2 azi2: <input type="text" "readonly" id="p2" size=60>
+         lat2 lon2 azi2: <input type="text" "readonly" id="p2" size=60>
       </p>
       <p>
-	 s12: <input type="text" "readonly" id="s12" size=20>
-	   status: <input "readonly" id="status" size=30>
-	  
-	<a href="geod-google-instructions.html"><b>INSTRUCTIONS</b></a>
-	(v<script type="text/javascript">
-	  document.write(GeographicLib.Constants.version_string);
-	</script>)
+         s12: <input type="text" "readonly" id="s12" size=20>
+           status: <input "readonly" id="status" size=30>
+          
+        <a href="geod-google-instructions.html"><b>INSTRUCTIONS</b></a>
+        (v<script type="text/javascript">
+          document.write(GeographicLib.Constants.version_string);
+        </script>)
       </p>
   </div>
   </body>
diff --git a/js/src/DMS.js b/js/src/DMS.js
index b1e0ebd..e5fbf6e 100644
--- a/js/src/DMS.js
+++ b/js/src/DMS.js
@@ -5,7 +5,7 @@
  * See the documentation for the C++ class.  The conversion is a literal
  * conversion from C++.
  *
- * Copyright (c) Charles Karney (2011-2015) <charles at karney.com> and licensed
+ * Copyright (c) Charles Karney (2011-2017) <charles at karney.com> and licensed
  * under the MIT/X11 License.  For more information, see
  * https://geographiclib.sourceforge.io/
  */
@@ -102,9 +102,9 @@ GeographicLib.DMS = {};
       pb = Math.min(mi, pi);
       vals = internalDecode(dmsa.substr(p, pb - p));
       v += vals.val; ind2 = vals.ind;
-      if (ind1 == d.NONE)
+      if (ind1 === d.NONE)
         ind1 = ind2;
-      else if (!(ind2 == d.NONE || ind1 == ind2))
+      else if (!(ind2 === d.NONE || ind1 === ind2))
         throw new Error("Incompatible hemisphere specifies in " +
                         dmsa.substr(0, pb));
     }
@@ -356,7 +356,8 @@ GeographicLib.DMS = {};
     var vals = d.Decode(angstr),
         ang = vals.val, ind = vals.ind;
     if (ind !== d.NONE)
-      throw new Error("Arc angle " + angstr + " includes a hemisphere N/E/W/S");
+      throw new Error("Arc angle " + angstr +
+                      " includes a hemisphere N/E/W/S");
     return ang;
   };
 
@@ -424,7 +425,7 @@ GeographicLib.DMS = {};
     fdegree = (angle - idegree) * scale + 0.5;
     f = Math.floor(fdegree);
     // Implement the "round ties to even" rule
-    fdegree = (f == fdegree && (f & 1)) ? f - 1 : f;
+    fdegree = (f === fdegree && (f & 1) === 1) ? f - 1 : f;
     fdegree /= scale;
 
     fdegree = Math.floor((angle - idegree) * scale + 0.5) / scale;
diff --git a/js/src/Geodesic.js b/js/src/Geodesic.js
index c93ca26..974d1d4 100644
--- a/js/src/Geodesic.js
+++ b/js/src/Geodesic.js
@@ -704,7 +704,8 @@ GeographicLib.PolygonArea = {};
 
   // return lam12, salp2, calp2, sig12, ssig1, csig1, ssig2, csig2, eps,
   // domg12, dlam12,
-  g.Geodesic.prototype.Lambda12 = function(sbet1, cbet1, dn1, sbet2, cbet2, dn2,
+  g.Geodesic.prototype.Lambda12 = function(sbet1, cbet1, dn1,
+                                           sbet2, cbet2, dn2,
                                            salp1, calp1, slam120, clam120,
                                            diffp, C1a, C2a, C3a) {
     var vals = {},
@@ -927,7 +928,7 @@ GeographicLib.PolygonArea = {};
       s12x = nvals.s12b;
       m12x = nvals.m12b;
       // Ignore m0
-      if ((outmask & g.GEODESICSCALE) !== 0) {
+      if (outmask & g.GEODESICSCALE) {
         vals.M12 = nvals.M12;
         vals.M21 = nvals.M21;
       }
@@ -1069,12 +1070,13 @@ GeographicLib.PolygonArea = {};
             (outmask & (g.REDUCEDLENGTH | g.GEODESICSCALE) ?
              g.DISTANCE : g.NONE);
         nvals = this.Lengths(eps, sig12,
-                             ssig1, csig1, dn1, ssig2, csig2, dn2, cbet1, cbet2,
+                             ssig1, csig1, dn1, ssig2, csig2, dn2,
+                             cbet1, cbet2,
                              lengthmask, C1a, C2a);
         s12x = nvals.s12b;
         m12x = nvals.m12b;
         // Ignore m0
-        if ((outmask & g.GEODESICSCALE) !== 0) {
+        if (outmask & g.GEODESICSCALE) {
           vals.M12 = nvals.M12;
           vals.M21 = nvals.M21;
         }
diff --git a/js/src/GeodesicLine.js b/js/src/GeodesicLine.js
index 9fa4835..3f29dea 100644
--- a/js/src/GeodesicLine.js
+++ b/js/src/GeodesicLine.js
@@ -215,7 +215,8 @@
         // GeodesicExact.
         //     erri = the error in the inverse solution (nm)
         //     errd = the error in the direct solution (series only) (nm)
-        //     errda = the error in the direct solution (series + 1 Newton) (nm)
+        //     errda = the error in the direct solution
+        //             (series + 1 Newton) (nm)
         //
         //       f     erri  errd errda
         //     -1/5    12e6 1.2e9  69e6
@@ -303,8 +304,10 @@
       if (outmask & g.GEODESICSCALE) {
         t = this._k2 * (ssig2 - this._ssig1) * (ssig2 + this._ssig1) /
           (this._dn1 + dn2);
-        vals.M12 = csig12 + (t * ssig2 - csig2 * J12) * this._ssig1 / this._dn1;
-        vals.M21 = csig12 - (t * this._ssig1 - this._csig1 * J12) * ssig2 / dn2;
+        vals.M12 = csig12 +
+          (t * ssig2 - csig2 * J12) * this._ssig1 / this._dn1;
+        vals.M21 = csig12 -
+          (t * this._ssig1 - this._csig1 * J12) * ssig2 / dn2;
       }
     }
 
diff --git a/js/src/Math.js b/js/src/Math.js
index c41b137..dee30d7 100644
--- a/js/src/Math.js
+++ b/js/src/Math.js
@@ -65,12 +65,12 @@ GeographicLib.Accumulator = {};
    * @property {number} minor the minor version number.
    * @property {number} patch the patch number.
    */
-  c.version = { major: 1, minor: 48, patch: 0 };
+  c.version = { major: 1, minor: 49, patch: 0 };
   /**
    * @constant
    * @summary version string
    */
-  c.version_string = "1.48";
+  c.version_string = "1.49";
 })(GeographicLib.Constants);
 
 (function(
@@ -283,7 +283,7 @@ GeographicLib.Accumulator = {};
       case 2:  sinx = -s; cosx = -c; break;
       default: sinx = -c; cosx =  s; break; // case 3
     }
-    if (x) { sinx += 0; cosx += 0; }
+    if (x !== 0) { sinx += 0; cosx += 0; }
     return {s: sinx, c: cosx};
   };
 
diff --git a/js/test/geodesictest.js b/js/test/geodesictest.js
index 4544b98..72c25ae 100644
--- a/js/test/geodesictest.js
+++ b/js/test/geodesictest.js
@@ -520,6 +520,26 @@ describe("GeographicLib", function() {
       assert.approx(inv.S12, 286698586.30197, 5e-4);
     });
 
+    it("GeodSolve76", function() {
+      // The distance from Wellington and Salamanca (a classic failure of
+      // Vincenty)
+      var geod = g.WGS84,
+          inv = geod.Inverse(-(41+19/60.0), 174+49/60.0,
+                             40+58/60.0, -(5+30/60.0));
+      assert.approx(inv.azi1, 160.39137649664, 0.5e-11);
+      assert.approx(inv.azi2,  19.50042925176, 0.5e-11);
+      assert.approx(inv.s12,  19960543.857179, 0.5e-6);
+    });
+
+    it("GeodSolve78", function() {
+      // An example where the NGS calculator fails to converge
+      var geod = g.WGS84,
+          inv = geod.Inverse(27.2, 0.0, -27.1, 179.5);
+      assert.approx(inv.azi1,  45.82468716758, 0.5e-11);
+      assert.approx(inv.azi2, 134.22776532670, 0.5e-11);
+      assert.approx(inv.s12,  19974354.765767, 0.5e-6);
+    });
+
   });
 
   describe("Planimeter", function () {
diff --git a/legacy/C/CMakeLists.txt b/legacy/C/CMakeLists.txt
index bd25fde..bbf5bca 100644
--- a/legacy/C/CMakeLists.txt
+++ b/legacy/C/CMakeLists.txt
@@ -13,9 +13,36 @@ if (MSVC)
   set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /W4")
 else ()
   set (CMAKE_C_FLAGS
-    "${CMAKE_C_FLAGS} -Wall -Wextra -Wno-array-bounds -pedantic")
-  if (NOT "${CMAKE_C_COMPILER_ID}" STREQUAL "Clang")
-    set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -ansi")
+    "${CMAKE_C_FLAGS} -Wall -Wextra -Wfloat-conversion -Wno-array-bounds -pedantic")
+endif ()
+
+include (CheckCSourceCompiles)
+if (MSVC)
+  set (CMAKE_REQUIRED_FLAGS "${CMAKE_C_FLAGS} /WX")
+else ()
+  set (CMAKE_REQUIRED_LIBRARIES m)
+  set (CMAKE_REQUIRED_FLAGS "${CMAKE_C_FLAGS} -Werror")
+endif ()
+# Check whether the C99 math function: hypot, atanh, etc. are available.
+check_c_source_compiles (
+  "#include <math.h>
+int main() {
+  int q;
+  return (int)(hypot(3.0, 4.0) + atanh(0.8) + cbrt(8.0) +
+               remquo(100.0, 90.0, &q) +
+               remainder(100.0, 90.0) + copysign(1.0, -0.0));
+}\n" C99_MATH)
+if (C99_MATH)
+  add_definitions (-DHAVE_C99_MATH=1)
+else ()
+  add_definitions (-DHAVE_C99_MATH=0)
+endif ()
+
+if (CONVERT_WARNINGS_TO_ERRORS)
+  if (MSVC)
+    set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /WX")
+  else ()
+    set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Werror")
   endif ()
 endif ()
 
diff --git a/legacy/C/geodesic.c b/legacy/C/geodesic.c
index 927e59e..84951d7 100644
--- a/legacy/C/geodesic.c
+++ b/legacy/C/geodesic.c
@@ -26,6 +26,10 @@
 #include "geodesic.h"
 #include <math.h>
 
+#if !defined(HAVE_C99_MATH)
+#define HAVE_C99_MATH 0
+#endif
+
 #define GEOGRAPHICLIB_GEODESIC_ORDER 6
 #define nA1   GEOGRAPHICLIB_GEODESIC_ORDER
 #define nC1   GEOGRAPHICLIB_GEODESIC_ORDER
@@ -105,6 +109,12 @@ enum captype {
 };
 
 static real sq(real x) { return x * x; }
+#if HAVE_C99_MATH
+#define atanhx atanh
+#define copysignx copysign
+#define hypotx hypot
+#define cbrtx cbrt
+#else
 static real log1px(real x) {
   volatile real
     y = 1 + x,
@@ -133,6 +143,7 @@ static real cbrtx(real x) {
   real y = pow(fabs(x), 1/(real)(3)); /* Return the real cube root */
   return x < 0 ? -y : y;
 }
+#endif
 
 static real sumx(real u, real v, real* t) {
   volatile real s = u + v;
@@ -170,8 +181,13 @@ static void norm2(real* sinx, real* cosx) {
 }
 
 static real AngNormalize(real x) {
+#if HAVE_C99_MATH
+  x = remainder(x, (real)(360));
+  return x != -180 ? x : 180;
+#else
   x = fmod(x, (real)(360));
   return x <= -180 ? x + 360 : (x <= 180 ? x : x - 360);
+#endif
 }
 
 static real LatFix(real x)
@@ -202,9 +218,15 @@ static void sincosdx(real x, real* sinx, real* cosx) {
   /* In order to minimize round-off errors, this function exactly reduces
    * the argument to the range [-45, 45] before converting it to radians. */
   real r, s, c; int q;
+#if HAVE_C99_MATH && !defined(__GNUC__)
+  /* Disable for gcc because of bug in glibc version < 2.22, see
+   * https://sourceware.org/bugzilla/show_bug.cgi?id=17569 */
+  r = remquo(x, (real)(90), &q);
+#else
   r = fmod(x, (real)(360));
   q = (int)(floor(r / 90 + (real)(0.5)));
   r -= 90 * q;
+#endif
   /* now abs(r) <= 45 */
   r *= degree;
   /* Possibly could call the gnu extension sincos */
@@ -215,7 +237,7 @@ static void sincosdx(real x, real* sinx, real* cosx) {
   case 2U: *sinx = -s; *cosx = -c; break;
   default: *sinx = -c; *cosx =  s; break; /* case 3U */
   }
-  if (x) { *sinx += (real)(0); *cosx += (real)(0); }
+  if (x != 0) { *sinx += (real)(0); *cosx += (real)(0); }
 }
 
 static real atan2dx(real y, real x) {
@@ -538,7 +560,9 @@ real geod_genposition(const struct geod_geodesicline* l,
   salp2 = l->salp0; calp2 = l->calp0 * csig2; /* No need to normalize */
 
   if (outmask & GEOD_DISTANCE)
-    s12 = flags & GEOD_ARCMODE ? l->b * ((1 + l->A1m1) * sig12 + AB1) : s12_a12;
+    s12 = flags & GEOD_ARCMODE ?
+      l->b * ((1 + l->A1m1) * sig12 + AB1) :
+      s12_a12;
 
   if (outmask & GEOD_LONGITUDE) {
     real E = copysignx(1, l->salp0); /* east or west going? */
@@ -576,7 +600,8 @@ real geod_genposition(const struct geod_geodesicline* l,
       m12 = l->b * ((dn2 * (l->csig1 * ssig2) - l->dn1 * (l->ssig1 * csig2))
                     - l->csig1 * csig2 * J12);
     if (outmask & GEOD_GEODESICSCALE) {
-      real t = l->k2 * (ssig2 - l->ssig1) * (ssig2 + l->ssig1) / (l->dn1 + dn2);
+      real t = l->k2 * (ssig2 - l->ssig1) * (ssig2 + l->ssig1) /
+        (l->dn1 + dn2);
       M12 = csig12 + (t *  ssig2 -  csig2 * J12) * l->ssig1 / l->dn1;
       M21 = csig12 - (t * l->ssig1 - l->csig1 * J12) *  ssig2 /  dn2;
     }
@@ -639,7 +664,9 @@ static void geod_setarc(struct geod_geodesicline* l, real a13) {
 
 void geod_gensetdistance(struct geod_geodesicline* l,
  unsigned flags, real s13_a13) {
-  flags & GEOD_ARCMODE ? geod_setarc(l, s13_a13) : geod_setdistance(l, s13_a13);
+  flags & GEOD_ARCMODE ?
+    geod_setarc(l, s13_a13) :
+    geod_setdistance(l, s13_a13);
 }
 
 void geod_position(const struct geod_geodesicline* l, real s12,
@@ -1758,10 +1785,17 @@ int transit(real lon1, real lon2) {
 }
 
 int transitdirect(real lon1, real lon2) {
+#if HAVE_C99_MATH
+  lon1 = remainder(lon1, (real)(720));
+  lon2 = remainder(lon2, (real)(720));
+  return ( (lon2 >= 0 && lon2 < 360 ? 0 : 1) -
+           (lon1 >= 0 && lon1 < 360 ? 0 : 1) );
+#else
   lon1 = fmod(lon1, (real)(720));
   lon2 = fmod(lon2, (real)(720));
   return ( ((lon2 >= 0 && lon2 < 360) || lon2 < -360 ? 0 : 1) -
            ((lon1 >= 0 && lon1 < 360) || lon1 < -360 ? 0 : 1) );
+#endif
 }
 
 void accini(real s[]) {
diff --git a/legacy/C/geodesic.h b/legacy/C/geodesic.h
index b864ccf..ab18a01 100644
--- a/legacy/C/geodesic.h
+++ b/legacy/C/geodesic.h
@@ -112,7 +112,7 @@
  * https://geographiclib.sourceforge.io/
  *
  * This library was distributed with
- * <a href="../index.html">GeographicLib</a> 1.48.
+ * <a href="../index.html">GeographicLib</a> 1.49.
  **********************************************************************/
 
 #if !defined(GEODESIC_H)
@@ -127,7 +127,7 @@
  * The minor version of the geodesic library.  (This tracks the version of
  * GeographicLib.)
  **********************************************************************/
-#define GEODESIC_VERSION_MINOR 48
+#define GEODESIC_VERSION_MINOR 49
 /**
  * The patch level of the geodesic library.  (This tracks the version of
  * GeographicLib.)
@@ -881,16 +881,16 @@ extern "C" {
    * mask values for the \e caps argument to geod_lineinit().
    **********************************************************************/
   enum geod_mask {
-    GEOD_NONE         = 0U,                     /**< Calculate nothing */
-    GEOD_LATITUDE     = 1U<<7  | 0U,            /**< Calculate latitude */
-    GEOD_LONGITUDE    = 1U<<8  | 1U<<3,         /**< Calculate longitude */
-    GEOD_AZIMUTH      = 1U<<9  | 0U,            /**< Calculate azimuth */
-    GEOD_DISTANCE     = 1U<<10 | 1U<<0,         /**< Calculate distance */
-    GEOD_DISTANCE_IN  = 1U<<11 | 1U<<0 | 1U<<1, /**< Allow distance as input  */
-    GEOD_REDUCEDLENGTH= 1U<<12 | 1U<<0 | 1U<<2, /**< Calculate reduced length */
-    GEOD_GEODESICSCALE= 1U<<13 | 1U<<0 | 1U<<2, /**< Calculate geodesic scale */
-    GEOD_AREA         = 1U<<14 | 1U<<4,         /**< Calculate reduced length */
-    GEOD_ALL          = 0x7F80U| 0x1FU          /**< Calculate everything */
+    GEOD_NONE         = 0U,                    /**< Calculate nothing */
+    GEOD_LATITUDE     = 1U<<7  | 0U,           /**< Calculate latitude */
+    GEOD_LONGITUDE    = 1U<<8  | 1U<<3,        /**< Calculate longitude */
+    GEOD_AZIMUTH      = 1U<<9  | 0U,           /**< Calculate azimuth */
+    GEOD_DISTANCE     = 1U<<10 | 1U<<0,        /**< Calculate distance */
+    GEOD_DISTANCE_IN  = 1U<<11 | 1U<<0 | 1U<<1,/**< Allow distance as input  */
+    GEOD_REDUCEDLENGTH= 1U<<12 | 1U<<0 | 1U<<2,/**< Calculate reduced length */
+    GEOD_GEODESICSCALE= 1U<<13 | 1U<<0 | 1U<<2,/**< Calculate geodesic scale */
+    GEOD_AREA         = 1U<<14 | 1U<<4,        /**< Calculate reduced length */
+    GEOD_ALL          = 0x7F80U| 0x1FU         /**< Calculate everything */
   };
 
   /**
diff --git a/legacy/C/geodtest.c b/legacy/C/geodtest.c
index 5ca741b..6899436 100644
--- a/legacy/C/geodtest.c
+++ b/legacy/C/geodtest.c
@@ -16,7 +16,7 @@
 #include <math.h>
 
 #if defined(_MSC_VER)
-// Squelch warnings about assignment within conditional expression
+/* Squelch warnings about assignment within conditional expression */
 #  pragma warning (disable: 4706)
 #endif
 
@@ -618,8 +618,9 @@ static int GeodSolve73() {
   return result;
 }
 
-static void planimeter(const struct geod_geodesic* g, double points[][2], int N,
-                double* perimeter, double* area) {
+static void planimeter(const struct geod_geodesic* g,
+                       double points[][2], int N,
+                       double* perimeter, double* area) {
   struct geod_polygon p;
   int i;
   geod_polygon_init(&p, 0);
@@ -628,8 +629,9 @@ static void planimeter(const struct geod_geodesic* g, double points[][2], int N,
   geod_polygon_compute(g, &p, 0, 1, area, perimeter);
 }
 
-static void polylength(const struct geod_geodesic* g, double points[][2], int N,
-                double* perimeter) {
+static void polylength(const struct geod_geodesic* g,
+                       double points[][2], int N,
+                       double* perimeter) {
   struct geod_polygon p;
   int i;
   geod_polygon_init(&p, 1);
@@ -658,6 +660,34 @@ static int GeodSolve74() {
   return result;
 }
 
+static int GeodSolve76() {
+  /* The distance from Wellington and Salamanca (a classic failure of
+     Vincenty) */
+  double azi1, azi2, s12;
+  struct geod_geodesic g;
+  int result = 0;
+  geod_init(&g, wgs84_a, wgs84_f);
+  geod_inverse(&g, -(41+19/60.0), 174+49/60.0, 40+58/60.0, -(5+30/60.0),
+               &s12, &azi1, &azi2);
+  result += assertEquals(azi1, 160.39137649664, 0.5e-11);
+  result += assertEquals(azi2,  19.50042925176, 0.5e-11);
+  result += assertEquals(s12,  19960543.857179, 0.5e-6);
+  return result;
+}
+
+static int GeodSolve78() {
+  /* An example where the NGS calculator fails to converge */
+  double azi1, azi2, s12;
+  struct geod_geodesic g;
+  int result = 0;
+  geod_init(&g, wgs84_a, wgs84_f);
+  geod_inverse(&g, 27.2, 0.0, -27.1, 179.5, &s12, &azi1, &azi2);
+  result += assertEquals(azi1,  45.82468716758, 0.5e-11);
+  result += assertEquals(azi2, 134.22776532670, 0.5e-11);
+  result += assertEquals(s12,  19974354.765767, 0.5e-6);
+  return result;
+}
+
 static int Planimeter0() {
   /* Check fix for pole-encircling bug found 2011-03-16 */
   double pa[4][2] = {{89, 0}, {89, 90}, {89, 180}, {89, 270}};
@@ -786,6 +816,8 @@ int main() {
   if ((i = GeodSolve71())) {++n; printf("GeodSolve71 fail: %d\n", i);}
   if ((i = GeodSolve73())) {++n; printf("GeodSolve73 fail: %d\n", i);}
   if ((i = GeodSolve74())) {++n; printf("GeodSolve74 fail: %d\n", i);}
+  if ((i = GeodSolve76())) {++n; printf("GeodSolve76 fail: %d\n", i);}
+  if ((i = GeodSolve78())) {++n; printf("GeodSolve78 fail: %d\n", i);}
   if ((i = Planimeter0())) {++n; printf("Planimeter0 fail: %d\n", i);}
   if ((i = Planimeter5())) {++n; printf("Planimeter5 fail: %d\n", i);}
   if ((i = Planimeter6())) {++n; printf("Planimeter6 fail: %d\n", i);}
diff --git a/legacy/Fortran/CMakeLists.txt b/legacy/Fortran/CMakeLists.txt
index fcf2664..fdafbc0 100644
--- a/legacy/Fortran/CMakeLists.txt
+++ b/legacy/Fortran/CMakeLists.txt
@@ -10,11 +10,24 @@ endif ()
 
 set (TOOLS geoddirect geodinverse planimeter geodtest)
 
+if (CONVERT_WARNINGS_TO_ERRORS)
+  if (MSVC)
+    set (CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} /WX")
+  else ()
+    set (CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -Werror")
+  endif ()
+endif ()
+
 foreach (TOOL ${TOOLS})
   add_executable (${TOOL} ${TOOL}.for geodesic.for geodesic.inc)
 endforeach ()
-set_target_properties (${TOOLS} PROPERTIES COMPILE_FLAGS
-  "-Wall -Wextra -pedantic -std=f95 -fimplicit-none -Wno-compare-reals")
+# Make the compiler more picky.
+if (MSVC)
+  set_target_properties (${TOOLS} PROPERTIES COMPILE_FLAGS "/W4")
+else ()
+  set_target_properties (${TOOLS} PROPERTIES COMPILE_FLAGS
+    "-Wall -Wextra -pedantic -std=f95 -fimplicit-none -Wno-compare-reals")
+endif ()
 
 # Work alikes for NGS geodesic tools.  This uses legacy code from NGS
 # and so they trigger multiple errors and warnings if compiled with the
diff --git a/legacy/Fortran/geodesic.for b/legacy/Fortran/geodesic.for
index 0f4e706..2b331dc 100644
--- a/legacy/Fortran/geodesic.for
+++ b/legacy/Fortran/geodesic.for
@@ -101,13 +101,13 @@
 *!   → [\e azi1, \e azi2] + [\e d, \e d], for arbitrary \e d.
 *!
 *! These routines are a simple transcription of the corresponding C++
-*! classes in <a href="https://geographiclib.sourceforge.io"> GeographicLib</a>.
-*! Because of the limitations of Fortran 77, the classes have been
-*! replaced by simple subroutines with no attempt to save "state" across
-*! subroutine calls.  Most of the internal comments have been retained.
-*! However, in the process of transcription some documentation has been
-*! lost and the documentation for the C++ classes,
-*! GeographicLib::Geodesic, GeographicLib::GeodesicLine, and
+*! classes in <a href="https://geographiclib.sourceforge.io">
+*! GeographicLib</a>.  Because of the limitations of Fortran 77, the
+*! classes have been replaced by simple subroutines with no attempt to
+*! save "state" across subroutine calls.  Most of the internal comments
+*! have been retained.  However, in the process of transcription some
+*! documentation has been lost and the documentation for the C++
+*! classes, GeographicLib::Geodesic, GeographicLib::GeodesicLine, and
 *! GeographicLib::PolygonAreaT, should be consulted.  The C++ code
 *! remains the "reference implementation".  Think twice about
 *! restructuring the internals of the Fortran code since this may make
@@ -118,7 +118,7 @@
 *! https://geographiclib.sourceforge.io/
 *!
 *! This library was distributed with
-*! <a href="../index.html">GeographicLib</a> 1.48.
+*! <a href="../index.html">GeographicLib</a> 1.49.
 
 *> Solve the direct geodesic problem
 *!
@@ -254,7 +254,7 @@
 
       call sncsdx(AngRnd(LatFix(lat1)), sbet1, cbet1)
       sbet1 = f1 * sbet1
-      call norm2(sbet1, cbet1)
+      call norm2x(sbet1, cbet1)
 * Ensure cbet1 = +dbleps at poles
       cbet1 = max(tiny, cbet1)
       dn1 = sqrt(1 + ep2 * sbet1**2)
@@ -283,8 +283,8 @@
       end if
       comg1 = csig1
 * sig1 in (-pi, pi]
-      call norm2(ssig1, csig1)
-* norm2(somg1, comg1); -- don't need to normalize!
+      call norm2x(ssig1, csig1)
+* norm2x(somg1, comg1); -- don't need to normalize!
 
       k2 = calp0**2 * ep2
       eps = k2 / (2 * (1 + sqrt(1 + k2)) + k2)
@@ -653,13 +653,13 @@
 
       call sncsdx(lat1x, sbet1, cbet1)
       sbet1 = f1 * sbet1
-      call norm2(sbet1, cbet1)
+      call norm2x(sbet1, cbet1)
 * Ensure cbet1 = +dbleps at poles
       cbet1 = max(tiny, cbet1)
 
       call sncsdx(lat2x, sbet2, cbet2)
       sbet2 = f1 * sbet2
-      call norm2(sbet2, cbet2)
+      call norm2x(sbet2, cbet2)
 * Ensure cbet2 = +dbleps at poles
       cbet2 = max(tiny, cbet2)
 
@@ -825,7 +825,7 @@
               if (nsalp1 .gt. 0 .and. abs(dalp1) .lt. pi) then
                 calp1 = calp1 * cdalp1 - salp1 * sdalp1
                 salp1 = nsalp1
-                call norm2(salp1, calp1)
+                call norm2x(salp1, calp1)
 * In some regimes we don't get quadratic convergence because
 * slope -> 0.  So use convergence conditions based on dbleps
 * instead of sqrt(dbleps).
@@ -843,7 +843,7 @@
 * WGS84 and random input: mean = 4.74, sd = 0.99
             salp1 = (salp1a + salp1b)/2
             calp1 = (calp1a + calp1b)/2
-            call norm2(salp1, calp1)
+            call norm2x(salp1, calp1)
             tripn = .false.
             tripb = abs(salp1a - salp1) + (calp1a - calp1) .lt. tolb
      +          .or. abs(salp1 - salp1b) + (calp1 - calp1b) .lt. tolb
@@ -882,8 +882,8 @@
           eps = k2 / (2 * (1 + sqrt(1 + k2)) + k2)
 * Multiplier = a^2 * e^2 * cos(alpha0) * sin(alpha0).
           A4 = a**2 * calp0 * salp0 * e2
-          call norm2(ssig1, csig1)
-          call norm2(ssig2, csig2)
+          call norm2x(ssig1, csig1)
+          call norm2x(ssig2, csig2)
           call C4f(eps, C4x, Ca)
           B41 = TrgSum(.false., ssig1, csig1, Ca, nC4)
           B42 = TrgSum(.false., ssig2, csig2, Ca, nC4)
@@ -1037,7 +1037,7 @@
       integer major, minor, patch
 
       major = 1
-      minor = 48
+      minor = 49
       patch = 0
 
       return
@@ -1333,7 +1333,7 @@
           calp2 = 1 - comg12
         end if
         calp2 = sbet12 - cbet1 * sbet2 * calp2
-        call norm2(salp2, calp2)
+        call norm2x(salp2, calp2)
 * Set return value
         sig12 = atan2(ssig12, csig12)
       else if (abs(n) .gt. 0.1d0 .or. csig12 .ge. 0 .or.
@@ -1437,7 +1437,7 @@
       end if
 * Sanity check on starting guess.  Backwards check allows NaN through.
       if (.not. (salp1 .le. 0)) then
-        call norm2(salp1, calp1)
+        call norm2x(salp1, calp1)
       else
         salp1 = 1
         calp1 = 0
@@ -1497,8 +1497,8 @@
       somg1 = salp0 * sbet1
       csig1 = calp1 * cbet1
       comg1 = csig1
-      call norm2(ssig1, csig1)
-* norm2(somg1, comg1); -- don't need to normalize!
+      call norm2x(ssig1, csig1)
+* norm2x(somg1, comg1); -- don't need to normalize!
 
 * Enforce symmetries in the case abs(bet2) = -bet1.  Need to be careful
 * about this case, since this can yield singularities in the Newton
@@ -1529,8 +1529,8 @@
       somg2 = salp0 * sbet2
       csig2 = calp2 * cbet2
       comg2 = csig2
-      call norm2(ssig2, csig2)
-* norm2(somg2, comg2); -- don't need to normalize!
+      call norm2x(ssig2, csig2)
+* norm2x(somg2, comg2); -- don't need to normalize!
 
 * sig12 = sig2 - sig1, limit to [0, pi]
       sig12 = atan2(0d0 + max(0d0, csig1 * ssig2 - ssig1 * csig2),
@@ -1990,12 +1990,13 @@
 * input
       double precision x, y
 
+* With Fortran 2008, this becomes: hypotx = hypot(x, y)
       hypotx = sqrt(x**2 + y**2)
 
       return
       end
 
-      subroutine norm2(x, y)
+      subroutine norm2x(x, y)
 * input/output
       double precision x, y
 
@@ -2027,6 +2028,7 @@
 * input
       double precision x
 
+* With Fortran 2008, this becomes: atanhx = atanh(x)
       double precision log1px, y
       y = abs(x)
       y = log1px(2 * y/(1 - y))/2
@@ -2267,7 +2269,7 @@
 *    meridian      merid
 *    outmask       omask
 *    shortline     shortp
-*    norm          norm2
+*    norm          norm2x
 *    SinCosSeries  TrgSum
 *    xthresh       xthrsh
 *    transit       trnsit
diff --git a/legacy/Fortran/geodtest.for b/legacy/Fortran/geodtest.for
index 021a41d..f71db9e 100644
--- a/legacy/Fortran/geodtest.for
+++ b/legacy/Fortran/geodtest.for
@@ -863,6 +863,50 @@
       return
       end
 
+      integer function tstg76()
+* The distance from Wellington and Salamanca (a classic failure of
+* Vincenty
+      double precision azi1, azi2, s12, a12, m12, MM12, MM21, SS12
+      double precision a, f
+      integer r, assert, omask
+      include 'geodesic.inc'
+
+* WGS84 values
+      a = 6378137d0
+      f = 1/298.257223563d0
+      omask = 0
+      r = 0
+      call invers(a, f,
+     +    -(41+19/60d0), 174+49/60d0, 40+58/60d0, -(5+30/60d0),
+     +    s12, azi1, azi2, omask, a12, m12, MM12, MM21, SS12)
+      r = r + assert(azi1, 160.39137649664d0, 0.5d-11)
+      r = r + assert(azi2,  19.50042925176d0, 0.5d-11)
+      r = r + assert(s12,  19960543.857179d0, 0.5d-6)
+      tstg76 = r
+      return
+      end
+
+      integer function tstg78()
+* An example where the NGS calculator fails to converge
+      double precision azi1, azi2, s12, a12, m12, MM12, MM21, SS12
+      double precision a, f
+      integer r, assert, omask
+      include 'geodesic.inc'
+
+* WGS84 values
+      a = 6378137d0
+      f = 1/298.257223563d0
+      omask = 0
+      r = 0
+      call invers(a, f, 27.2d0, 0d0, -27.1d0, 179.5d0,
+     +    s12, azi1, azi2, omask, a12, m12, MM12, MM21, SS12)
+      r = r + assert(azi1,  45.82468716758d0, 0.5d-11)
+      r = r + assert(azi2, 134.22776532670d0, 0.5d-11)
+      r = r + assert(s12,  19974354.765767d0, 0.5d-6)
+      tstg78 = r
+      return
+      end
+
       integer function tstp0()
 * Check fix for pole-encircling bug found 2011-03-16
       double precision lata(4), lona(4)
@@ -1008,7 +1052,7 @@
       integer tstinv, tstdir, tstarc,
      +    tstg0, tstg1, tstg2, tstg5, tstg6, tstg9, tstg10, tstg11,
      +    tstg12, tstg14, tstg15, tstg17, tstg26, tstg28, tstg33,
-     +    tstg55, tstg59, tstg61, tstg73, tstg74,
+     +    tstg55, tstg59, tstg61, tstg73, tstg74, tstg76, tstg78,
      +    tstp0, tstp5, tstp6, tstp12, tstp13
 
       n = 0
@@ -1127,6 +1171,16 @@
         n = n + 1
         print *, 'tstg74 fail:', i
       end if
+      i = tstg76()
+      if (i .gt. 0) then
+        n = n + 1
+        print *, 'tstg76 fail:', i
+      end if
+      i = tstg78()
+      if (i .gt. 0) then
+        n = n + 1
+        print *, 'tstg78 fail:', i
+      end if
       i = tstp0()
       if (i .gt. 0) then
         n = n + 1
diff --git a/man/CMakeLists.txt b/man/CMakeLists.txt
index cfb4de6..633df56 100644
--- a/man/CMakeLists.txt
+++ b/man/CMakeLists.txt
@@ -33,10 +33,11 @@ foreach (TOOL ${TOOLS})
         ${CMAKE_CURRENT_SOURCE_DIR}/${TOOL}.pod > ${TOOL}.1
       COMMENT "Building man page for ${TOOL}"
       MAIN_DEPENDENCY ${TOOL}.pod)
-    add_custom_command (OUTPUT ${TOOL}.1.html
-      COMMAND
-        pod2html --title "'${TOOL}(1)'" --noindex ${CMAKE_CURRENT_SOURCE_DIR}/${TOOL}.pod |
-        sed -e 's%<head>%<head><link href="http://search.cpan.org/s/style.css" rel="stylesheet" type="text/css">%'
+    add_custom_command (OUTPUT ${TOOL}.1.html COMMAND
+        pod2html --title "'${TOOL}(1)'"
+          --noindex ${CMAKE_CURRENT_SOURCE_DIR}/${TOOL}.pod |
+        sed
+          -e 's%<head>%<head><link href="http://search.cpan.org/s/style.css" rel="stylesheet" type="text/css">%'
           -e 's%<code>\\\([^<>]*\\\)\(\\\(.\\\)\)</code>%<a href="\\1.\\2.html">&</a>%'g > ${TOOL}.1.html &&
         cp ${TOOL}.1.html ../doc/html-stage/
       COMMENT "Building html version of man page for ${TOOL}"
diff --git a/man/CartConvert.1 b/man/CartConvert.1
index ef4ae32..32c04f9 100644
--- a/man/CartConvert.1
+++ b/man/CartConvert.1
@@ -129,7 +129,7 @@
 .\" ========================================================================
 .\"
 .IX Title "CARTCONVERT 1"
-.TH CARTCONVERT 1 "2017-04-09" "GeographicLib 1.48" "GeographicLib Utilities"
+.TH CARTCONVERT 1 "2017-10-05" "GeographicLib 1.49" "GeographicLib Utilities"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
diff --git a/man/CartConvert.usage b/man/CartConvert.usage
index 72f0547..4167fc7 100644
--- a/man/CartConvert.usage
+++ b/man/CartConvert.usage
@@ -9,7 +9,7 @@ int usage(int retval, bool brief) {
 "For full documentation type:\n"
 "    CartConvert --help\n"
 "or visit:\n"
-"    https://geographiclib.sourceforge.io/1.48/CartConvert.1.html\n";
+"    https://geographiclib.sourceforge.io/1.49/CartConvert.1.html\n";
   else
     ( retval ? std::cerr : std::cout ) << "Man page:\n"
 "NAME\n"
diff --git a/man/ConicProj.1 b/man/ConicProj.1
index f75098f..44db223 100644
--- a/man/ConicProj.1
+++ b/man/ConicProj.1
@@ -129,7 +129,7 @@
 .\" ========================================================================
 .\"
 .IX Title "CONICPROJ 1"
-.TH CONICPROJ 1 "2017-04-09" "GeographicLib 1.48" "GeographicLib Utilities"
+.TH CONICPROJ 1 "2017-10-05" "GeographicLib 1.49" "GeographicLib Utilities"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
@@ -272,5 +272,5 @@ terminate; following lines will be converted.
 \&\fBConicProj\fR was written by Charles Karney.
 .SH "HISTORY"
 .IX Header "HISTORY"
-\&\fBConicProj\fR was added to GeographicLib, <https://geographiclib.sourceforge.io>,
-in version 1.9.
+\&\fBConicProj\fR was added to GeographicLib,
+<https://geographiclib.sourceforge.io>, in version 1.9.
diff --git a/man/ConicProj.pod b/man/ConicProj.pod
index 48e69bf..26ae4e8 100644
--- a/man/ConicProj.pod
+++ b/man/ConicProj.pod
@@ -161,5 +161,5 @@ B<ConicProj> was written by Charles Karney.
 
 =head1 HISTORY
 
-B<ConicProj> was added to GeographicLib, L<https://geographiclib.sourceforge.io>,
-in version 1.9.
+B<ConicProj> was added to GeographicLib,
+L<https://geographiclib.sourceforge.io>, in version 1.9.
diff --git a/man/ConicProj.usage b/man/ConicProj.usage
index 407de58..49e2cfb 100644
--- a/man/ConicProj.usage
+++ b/man/ConicProj.usage
@@ -9,7 +9,7 @@ int usage(int retval, bool brief) {
 "For full documentation type:\n"
 "    ConicProj --help\n"
 "or visit:\n"
-"    https://geographiclib.sourceforge.io/1.48/ConicProj.1.html\n";
+"    https://geographiclib.sourceforge.io/1.49/ConicProj.1.html\n";
   else
     ( retval ? std::cerr : std::cout ) << "Man page:\n"
 "NAME\n"
diff --git a/man/GeoConvert.1 b/man/GeoConvert.1
index 2d12e25..e4235ce 100644
--- a/man/GeoConvert.1
+++ b/man/GeoConvert.1
@@ -129,7 +129,7 @@
 .\" ========================================================================
 .\"
 .IX Title "GEOCONVERT 1"
-.TH GEOCONVERT 1 "2017-04-09" "GeographicLib 1.48" "GeographicLib Utilities"
+.TH GEOCONVERT 1 "2017-10-05" "GeographicLib 1.49" "GeographicLib Utilities"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
diff --git a/man/GeoConvert.usage b/man/GeoConvert.usage
index bb52db3..55e2420 100644
--- a/man/GeoConvert.usage
+++ b/man/GeoConvert.usage
@@ -10,7 +10,7 @@ int usage(int retval, bool brief) {
 "For full documentation type:\n"
 "    GeoConvert --help\n"
 "or visit:\n"
-"    https://geographiclib.sourceforge.io/1.48/GeoConvert.1.html\n";
+"    https://geographiclib.sourceforge.io/1.49/GeoConvert.1.html\n";
   else
     ( retval ? std::cerr : std::cout ) << "Man page:\n"
 "NAME\n"
diff --git a/man/GeodSolve.1 b/man/GeodSolve.1
index 769b261..ee976b8 100644
--- a/man/GeodSolve.1
+++ b/man/GeodSolve.1
@@ -129,7 +129,7 @@
 .\" ========================================================================
 .\"
 .IX Title "GEODSOLVE 1"
-.TH GEODSOLVE 1 "2017-04-09" "GeographicLib 1.48" "GeographicLib Utilities"
+.TH GEODSOLVE 1 "2017-10-05" "GeographicLib 1.49" "GeographicLib Utilities"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
diff --git a/man/GeodSolve.usage b/man/GeodSolve.usage
index 14064a4..a549aca 100644
--- a/man/GeodSolve.usage
+++ b/man/GeodSolve.usage
@@ -10,7 +10,7 @@ int usage(int retval, bool brief) {
 "For full documentation type:\n"
 "    GeodSolve --help\n"
 "or visit:\n"
-"    https://geographiclib.sourceforge.io/1.48/GeodSolve.1.html\n";
+"    https://geographiclib.sourceforge.io/1.49/GeodSolve.1.html\n";
   else
     ( retval ? std::cerr : std::cout ) << "Man page:\n"
 "NAME\n"
diff --git a/man/GeodesicProj.1 b/man/GeodesicProj.1
index 019cc61..0d15ab4 100644
--- a/man/GeodesicProj.1
+++ b/man/GeodesicProj.1
@@ -129,7 +129,7 @@
 .\" ========================================================================
 .\"
 .IX Title "GEODESICPROJ 1"
-.TH GEODESICPROJ 1 "2017-04-09" "GeographicLib 1.48" "GeographicLib Utilities"
+.TH GEODESICPROJ 1 "2017-10-05" "GeographicLib 1.49" "GeographicLib Utilities"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
@@ -269,5 +269,5 @@ addenda: <https://geographiclib.sourceforge.io/geod\-addenda.html>.
 .SH "HISTORY"
 .IX Header "HISTORY"
 \&\fBGeodesicProj\fR was added to GeographicLib,
-<https://geographiclib.sourceforge.io>, in 2009\-08.  Prior to version 1.9 it was
-called EquidistantTest.
+<https://geographiclib.sourceforge.io>, in 2009\-08.
+Prior to version 1.9 it was called EquidistantTest.
diff --git a/man/GeodesicProj.pod b/man/GeodesicProj.pod
index 6f5797e..5c71421 100644
--- a/man/GeodesicProj.pod
+++ b/man/GeodesicProj.pod
@@ -158,5 +158,5 @@ B<GeodesicProj> was written by Charles Karney.
 =head1 HISTORY
 
 B<GeodesicProj> was added to GeographicLib,
-L<https://geographiclib.sourceforge.io>, in 2009-08.  Prior to version 1.9 it was
-called EquidistantTest.
+L<https://geographiclib.sourceforge.io>, in 2009-08.
+Prior to version 1.9 it was called EquidistantTest.
diff --git a/man/GeodesicProj.usage b/man/GeodesicProj.usage
index a3950a9..7803eda 100644
--- a/man/GeodesicProj.usage
+++ b/man/GeodesicProj.usage
@@ -9,7 +9,7 @@ int usage(int retval, bool brief) {
 "For full documentation type:\n"
 "    GeodesicProj --help\n"
 "or visit:\n"
-"    https://geographiclib.sourceforge.io/1.48/GeodesicProj.1.html\n";
+"    https://geographiclib.sourceforge.io/1.49/GeodesicProj.1.html\n";
   else
     ( retval ? std::cerr : std::cout ) << "Man page:\n"
 "NAME\n"
diff --git a/man/GeoidEval.1 b/man/GeoidEval.1
index f93b037..e0aee07 100644
--- a/man/GeoidEval.1
+++ b/man/GeoidEval.1
@@ -129,7 +129,7 @@
 .\" ========================================================================
 .\"
 .IX Title "GEOIDEVAL 1"
-.TH GEOIDEVAL 1 "2017-04-09" "GeographicLib 1.48" "GeographicLib Utilities"
+.TH GEOIDEVAL 1 "2017-10-05" "GeographicLib 1.49" "GeographicLib Utilities"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
@@ -408,5 +408,5 @@ An online version of this utility is availbable at
 \&\fBGeoidEval\fR was written by Charles Karney.
 .SH "HISTORY"
 .IX Header "HISTORY"
-\&\fBGeoidEval\fR was added to GeographicLib, <https://geographiclib.sourceforge.io>,
-in 2009\-09.
+\&\fBGeoidEval\fR was added to GeographicLib,
+<https://geographiclib.sourceforge.io>, in 2009\-09.
diff --git a/man/GeoidEval.pod b/man/GeoidEval.pod
index bbcaf42..1e45295 100644
--- a/man/GeoidEval.pod
+++ b/man/GeoidEval.pod
@@ -317,5 +317,5 @@ B<GeoidEval> was written by Charles Karney.
 
 =head1 HISTORY
 
-B<GeoidEval> was added to GeographicLib, L<https://geographiclib.sourceforge.io>,
-in 2009-09.
+B<GeoidEval> was added to GeographicLib,
+L<https://geographiclib.sourceforge.io>, in 2009-09.
diff --git a/man/GeoidEval.usage b/man/GeoidEval.usage
index 58c057a..49ba739 100644
--- a/man/GeoidEval.usage
+++ b/man/GeoidEval.usage
@@ -10,7 +10,7 @@ int usage(int retval, bool brief) {
 "For full documentation type:\n"
 "    GeoidEval --help\n"
 "or visit:\n"
-"    https://geographiclib.sourceforge.io/1.48/GeoidEval.1.html\n";
+"    https://geographiclib.sourceforge.io/1.49/GeoidEval.1.html\n";
   else
     ( retval ? std::cerr : std::cout ) << "Man page:\n"
 "NAME\n"
diff --git a/man/Gravity.1 b/man/Gravity.1
index e984060..0d69dd0 100644
--- a/man/Gravity.1
+++ b/man/Gravity.1
@@ -129,7 +129,7 @@
 .\" ========================================================================
 .\"
 .IX Title "GRAVITY 1"
-.TH GRAVITY 1 "2017-04-09" "GeographicLib 1.48" "GeographicLib Utilities"
+.TH GRAVITY 1 "2017-10-05" "GeographicLib 1.49" "GeographicLib Utilities"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
diff --git a/man/Gravity.usage b/man/Gravity.usage
index e1050cd..127a90c 100644
--- a/man/Gravity.usage
+++ b/man/Gravity.usage
@@ -9,7 +9,7 @@ int usage(int retval, bool brief) {
 "For full documentation type:\n"
 "    Gravity --help\n"
 "or visit:\n"
-"    https://geographiclib.sourceforge.io/1.48/Gravity.1.html\n";
+"    https://geographiclib.sourceforge.io/1.49/Gravity.1.html\n";
   else
     ( retval ? std::cerr : std::cout ) << "Man page:\n"
 "NAME\n"
diff --git a/man/MagneticField.1 b/man/MagneticField.1
index 22190f9..e7c29cc 100644
--- a/man/MagneticField.1
+++ b/man/MagneticField.1
@@ -129,7 +129,7 @@
 .\" ========================================================================
 .\"
 .IX Title "MAGNETICFIELD 1"
-.TH MAGNETICFIELD 1 "2017-04-09" "GeographicLib 1.48" "GeographicLib Utilities"
+.TH MAGNETICFIELD 1 "2017-10-05" "GeographicLib 1.49" "GeographicLib Utilities"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
@@ -272,28 +272,31 @@ following models
 .Vb 10
 \&    wmm2010, the World Magnetic Model 2010, which approximates the
 \&      main magnetic field for the period 2010\-2015.  See
-\&      http://ngdc.noaa.gov/geomag/WMM/DoDWMM.shtml
+\&      https://ngdc.noaa.gov/geomag/WMM/DoDWMM.shtml
 \&    wmm2015, the World Magnetic Model 2015, which approximates the
 \&      main magnetic field for the period 2015\-2020.  See
-\&      http://ngdc.noaa.gov/geomag/WMM/DoDWMM.shtml
+\&      https://ngdc.noaa.gov/geomag/WMM/DoDWMM.shtml
 \&    igrf11, the International Geomagnetic Reference Field (11th
 \&      generation), which approximates the main magnetic field for
 \&      the period 1900\-2015.  See
-\&      http://ngdc.noaa.gov/IAGA/vmod/igrf.html
+\&      https://ngdc.noaa.gov/IAGA/vmod/igrf.html
 \&    igrf12, the International Geomagnetic Reference Field (12th
 \&      generation), which approximates the main magnetic field for
 \&      the period 1900\-2020.  See
-\&      http://ngdc.noaa.gov/IAGA/vmod/igrf.html
+\&      https://ngdc.noaa.gov/IAGA/vmod/igrf.html
 \&    emm2010, the Enhanced Magnetic Model 2010, which approximates
 \&      the main and crustal magnetic fields for the period 2010\-2015.
-\&      See http://ngdc.noaa.gov/geomag/EMM/index.html
+\&      See https://ngdc.noaa.gov/geomag/EMM/index.html
 \&    emm2015, the Enhanced Magnetic Model 2015, which approximates
 \&      the main and crustal magnetic fields for the period 2000\-2020.
-\&      See http://ngdc.noaa.gov/geomag/EMM/index.html
+\&      See https://ngdc.noaa.gov/geomag/EMM/index.html
+\&    emm2017, the Enhanced Magnetic Model 2017, which approximates
+\&      the main and crustal magnetic fields for the period 2000\-2022.
+\&      See https://ngdc.noaa.gov/geomag/EMM/index.html
 .Ve
 .PP
 These models approximate the magnetic field due to the earth's core and
-(in the case of emm2010) its crust.  They neglect magnetic fields due to
+(in the case of emm20xx) its crust.  They neglect magnetic fields due to
 the ionosphere, the magnetosphere, nearby magnetized materials,
 electrical machinery, etc.
 .PP
diff --git a/man/MagneticField.1.html b/man/MagneticField.1.html
index 4fec159..746f45d 100644
--- a/man/MagneticField.1.html
+++ b/man/MagneticField.1.html
@@ -161,26 +161,29 @@
 
 <pre><code>    wmm2010, the World Magnetic Model 2010, which approximates the
       main magnetic field for the period 2010-2015.  See
-      http://ngdc.noaa.gov/geomag/WMM/DoDWMM.shtml
+      https://ngdc.noaa.gov/geomag/WMM/DoDWMM.shtml
     wmm2015, the World Magnetic Model 2015, which approximates the
       main magnetic field for the period 2015-2020.  See
-      http://ngdc.noaa.gov/geomag/WMM/DoDWMM.shtml
+      https://ngdc.noaa.gov/geomag/WMM/DoDWMM.shtml
     igrf11, the International Geomagnetic Reference Field (11th
       generation), which approximates the main magnetic field for
       the period 1900-2015.  See
-      http://ngdc.noaa.gov/IAGA/vmod/igrf.html
+      https://ngdc.noaa.gov/IAGA/vmod/igrf.html
     igrf12, the International Geomagnetic Reference Field (12th
       generation), which approximates the main magnetic field for
       the period 1900-2020.  See
-      http://ngdc.noaa.gov/IAGA/vmod/igrf.html
+      https://ngdc.noaa.gov/IAGA/vmod/igrf.html
     emm2010, the Enhanced Magnetic Model 2010, which approximates
       the main and crustal magnetic fields for the period 2010-2015.
-      See http://ngdc.noaa.gov/geomag/EMM/index.html
+      See https://ngdc.noaa.gov/geomag/EMM/index.html
     emm2015, the Enhanced Magnetic Model 2015, which approximates
       the main and crustal magnetic fields for the period 2000-2020.
-      See http://ngdc.noaa.gov/geomag/EMM/index.html</code></pre>
+      See https://ngdc.noaa.gov/geomag/EMM/index.html
+    emm2017, the Enhanced Magnetic Model 2017, which approximates
+      the main and crustal magnetic fields for the period 2000-2022.
+      See https://ngdc.noaa.gov/geomag/EMM/index.html</code></pre>
 
-<p>These models approximate the magnetic field due to the earth's core and (in the case of emm2010) its crust. They neglect magnetic fields due to the ionosphere, the magnetosphere, nearby magnetized materials, electrical machinery, etc.</p>
+<p>These models approximate the magnetic field due to the earth's core and (in the case of emm20xx) its crust. They neglect magnetic fields due to the ionosphere, the magnetosphere, nearby magnetized materials, electrical machinery, etc.</p>
 
 <p>By default, the <code>wmm2015</code> magnetic model is used. This may changed by setting the environment variable <code>GEOGRAPHICLIB_MAGNETIC_NAME</code> or with the <b>-n</b> option.</p>
 
diff --git a/man/MagneticField.pod b/man/MagneticField.pod
index 0f1b326..58fe0f1 100644
--- a/man/MagneticField.pod
+++ b/man/MagneticField.pod
@@ -159,27 +159,30 @@ following models
 
     wmm2010, the World Magnetic Model 2010, which approximates the
       main magnetic field for the period 2010-2015.  See
-      http://ngdc.noaa.gov/geomag/WMM/DoDWMM.shtml
+      https://ngdc.noaa.gov/geomag/WMM/DoDWMM.shtml
     wmm2015, the World Magnetic Model 2015, which approximates the
       main magnetic field for the period 2015-2020.  See
-      http://ngdc.noaa.gov/geomag/WMM/DoDWMM.shtml
+      https://ngdc.noaa.gov/geomag/WMM/DoDWMM.shtml
     igrf11, the International Geomagnetic Reference Field (11th
       generation), which approximates the main magnetic field for
       the period 1900-2015.  See
-      http://ngdc.noaa.gov/IAGA/vmod/igrf.html
+      https://ngdc.noaa.gov/IAGA/vmod/igrf.html
     igrf12, the International Geomagnetic Reference Field (12th
       generation), which approximates the main magnetic field for
       the period 1900-2020.  See
-      http://ngdc.noaa.gov/IAGA/vmod/igrf.html
+      https://ngdc.noaa.gov/IAGA/vmod/igrf.html
     emm2010, the Enhanced Magnetic Model 2010, which approximates
       the main and crustal magnetic fields for the period 2010-2015.
-      See http://ngdc.noaa.gov/geomag/EMM/index.html
+      See https://ngdc.noaa.gov/geomag/EMM/index.html
     emm2015, the Enhanced Magnetic Model 2015, which approximates
       the main and crustal magnetic fields for the period 2000-2020.
-      See http://ngdc.noaa.gov/geomag/EMM/index.html
+      See https://ngdc.noaa.gov/geomag/EMM/index.html
+    emm2017, the Enhanced Magnetic Model 2017, which approximates
+      the main and crustal magnetic fields for the period 2000-2022.
+      See https://ngdc.noaa.gov/geomag/EMM/index.html
 
 These models approximate the magnetic field due to the earth's core and
-(in the case of emm2010) its crust.  They neglect magnetic fields due to
+(in the case of emm20xx) its crust.  They neglect magnetic fields due to
 the ionosphere, the magnetosphere, nearby magnetized materials,
 electrical machinery, etc.
 
diff --git a/man/MagneticField.usage b/man/MagneticField.usage
index f5d47b2..142c8fa 100644
--- a/man/MagneticField.usage
+++ b/man/MagneticField.usage
@@ -10,7 +10,7 @@ int usage(int retval, bool brief) {
 "For full documentation type:\n"
 "    MagneticField --help\n"
 "or visit:\n"
-"    https://geographiclib.sourceforge.io/1.48/MagneticField.1.html\n";
+"    https://geographiclib.sourceforge.io/1.49/MagneticField.1.html\n";
   else
     ( retval ? std::cerr : std::cout ) << "Man page:\n"
 "NAME\n"
@@ -139,27 +139,30 @@ int usage(int retval, bool brief) {
 "\n"
 "           wmm2010, the World Magnetic Model 2010, which approximates the\n"
 "             main magnetic field for the period 2010-2015.  See\n"
-"             http://ngdc.noaa.gov/geomag/WMM/DoDWMM.shtml\n"
+"             https://ngdc.noaa.gov/geomag/WMM/DoDWMM.shtml\n"
 "           wmm2015, the World Magnetic Model 2015, which approximates the\n"
 "             main magnetic field for the period 2015-2020.  See\n"
-"             http://ngdc.noaa.gov/geomag/WMM/DoDWMM.shtml\n"
+"             https://ngdc.noaa.gov/geomag/WMM/DoDWMM.shtml\n"
 "           igrf11, the International Geomagnetic Reference Field (11th\n"
 "             generation), which approximates the main magnetic field for\n"
 "             the period 1900-2015.  See\n"
-"             http://ngdc.noaa.gov/IAGA/vmod/igrf.html\n"
+"             https://ngdc.noaa.gov/IAGA/vmod/igrf.html\n"
 "           igrf12, the International Geomagnetic Reference Field (12th\n"
 "             generation), which approximates the main magnetic field for\n"
 "             the period 1900-2020.  See\n"
-"             http://ngdc.noaa.gov/IAGA/vmod/igrf.html\n"
+"             https://ngdc.noaa.gov/IAGA/vmod/igrf.html\n"
 "           emm2010, the Enhanced Magnetic Model 2010, which approximates\n"
 "             the main and crustal magnetic fields for the period 2010-2015.\n"
-"             See http://ngdc.noaa.gov/geomag/EMM/index.html\n"
+"             See https://ngdc.noaa.gov/geomag/EMM/index.html\n"
 "           emm2015, the Enhanced Magnetic Model 2015, which approximates\n"
 "             the main and crustal magnetic fields for the period 2000-2020.\n"
-"             See http://ngdc.noaa.gov/geomag/EMM/index.html\n"
+"             See https://ngdc.noaa.gov/geomag/EMM/index.html\n"
+"           emm2017, the Enhanced Magnetic Model 2017, which approximates\n"
+"             the main and crustal magnetic fields for the period 2000-2022.\n"
+"             See https://ngdc.noaa.gov/geomag/EMM/index.html\n"
 "\n"
 "       These models approximate the magnetic field due to the earth's core and\n"
-"       (in the case of emm2010) its crust.  They neglect magnetic fields due\n"
+"       (in the case of emm20xx) its crust.  They neglect magnetic fields due\n"
 "       to the ionosphere, the magnetosphere, nearby magnetized materials,\n"
 "       electrical machinery, etc.\n"
 "\n"
diff --git a/man/Makefile.am b/man/Makefile.am
index d0c3638..35473ce 100644
--- a/man/Makefile.am
+++ b/man/Makefile.am
@@ -48,7 +48,9 @@ SYSMANPAGES = geographiclib-get-geoids.8 \
 
 POD2MAN = pod2man --center="GeographicLib Utilities" \
 	--release="$(PACKAGE_STRING)"
-PODFIX = sed -e 's%<head>%<head><link href="http://search.cpan.org/s/style.css" rel="stylesheet" type="text/css">%' -e 's%<code>\([^<>]*\)(\(.\))</code>%<a href="\1.\2.html">&</a>%'g
+PODFIX = sed \
+	-e 's%<head>%<head><link href="http://search.cpan.org/s/style.css" rel="stylesheet" type="text/css">%' \
+	-e 's%<code>\([^<>]*\)(\(.\))</code>%<a href="\1.\2.html">&</a>%'g
 man1_MANS = $(MANPAGES)
 man8_MANS = $(SYSMANPAGES)
 
diff --git a/man/Makefile.in b/man/Makefile.in
index 472b33c..16b419f 100644
--- a/man/Makefile.in
+++ b/man/Makefile.in
@@ -344,7 +344,10 @@ SYSMANPAGES = geographiclib-get-geoids.8 \
 	geographiclib-get-gravity.8 \
 	geographiclib-get-magnetic.8
 
-PODFIX = sed -e 's%<head>%<head><link href="http://search.cpan.org/s/style.css" rel="stylesheet" type="text/css">%' -e 's%<code>\([^<>]*\)(\(.\))</code>%<a href="\1.\2.html">&</a>%'g
+PODFIX = sed \
+	-e 's%<head>%<head><link href="http://search.cpan.org/s/style.css" rel="stylesheet" type="text/css">%' \
+	-e 's%<code>\([^<>]*\)(\(.\))</code>%<a href="\1.\2.html">&</a>%'g
+
 man1_MANS = $(MANPAGES)
 man8_MANS = $(SYSMANPAGES)
 SUFFIXES = .pod .1 .usage .1.html .8
diff --git a/man/Planimeter.1 b/man/Planimeter.1
index 23934f3..af7085e 100644
--- a/man/Planimeter.1
+++ b/man/Planimeter.1
@@ -129,7 +129,7 @@
 .\" ========================================================================
 .\"
 .IX Title "PLANIMETER 1"
-.TH PLANIMETER 1 "2017-04-09" "GeographicLib 1.48" "GeographicLib Utilities"
+.TH PLANIMETER 1 "2017-10-05" "GeographicLib 1.49" "GeographicLib Utilities"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
diff --git a/man/Planimeter.usage b/man/Planimeter.usage
index 44e9b14..a5b2b15 100644
--- a/man/Planimeter.usage
+++ b/man/Planimeter.usage
@@ -9,7 +9,7 @@ int usage(int retval, bool brief) {
 "For full documentation type:\n"
 "    Planimeter --help\n"
 "or visit:\n"
-"    https://geographiclib.sourceforge.io/1.48/Planimeter.1.html\n";
+"    https://geographiclib.sourceforge.io/1.49/Planimeter.1.html\n";
   else
     ( retval ? std::cerr : std::cout ) << "Man page:\n"
 "NAME\n"
diff --git a/man/RhumbSolve.1 b/man/RhumbSolve.1
index 26cd8fd..d02f14e 100644
--- a/man/RhumbSolve.1
+++ b/man/RhumbSolve.1
@@ -129,7 +129,7 @@
 .\" ========================================================================
 .\"
 .IX Title "RHUMBSOLVE 1"
-.TH RHUMBSOLVE 1 "2017-04-09" "GeographicLib 1.48" "GeographicLib Utilities"
+.TH RHUMBSOLVE 1 "2017-10-05" "GeographicLib 1.49" "GeographicLib Utilities"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
@@ -348,5 +348,5 @@ The Wikipedia page, Rhumb line,
 \&\fBRhumbSolve\fR was written by Charles Karney.
 .SH "HISTORY"
 .IX Header "HISTORY"
-\&\fBRhumbSolve\fR was added to GeographicLib, <https://geographiclib.sourceforge.io>,
-in version 1.37.
+\&\fBRhumbSolve\fR was added to GeographicLib,
+<https://geographiclib.sourceforge.io>, in version 1.37.
diff --git a/man/RhumbSolve.pod b/man/RhumbSolve.pod
index a1fcbfc..68f12bd 100644
--- a/man/RhumbSolve.pod
+++ b/man/RhumbSolve.pod
@@ -249,5 +249,5 @@ B<RhumbSolve> was written by Charles Karney.
 
 =head1 HISTORY
 
-B<RhumbSolve> was added to GeographicLib, L<https://geographiclib.sourceforge.io>,
-in version 1.37.
+B<RhumbSolve> was added to GeographicLib,
+L<https://geographiclib.sourceforge.io>, in version 1.37.
diff --git a/man/RhumbSolve.usage b/man/RhumbSolve.usage
index 73b85ee..3af8dcf 100644
--- a/man/RhumbSolve.usage
+++ b/man/RhumbSolve.usage
@@ -9,7 +9,7 @@ int usage(int retval, bool brief) {
 "For full documentation type:\n"
 "    RhumbSolve --help\n"
 "or visit:\n"
-"    https://geographiclib.sourceforge.io/1.48/RhumbSolve.1.html\n";
+"    https://geographiclib.sourceforge.io/1.49/RhumbSolve.1.html\n";
   else
     ( retval ? std::cerr : std::cout ) << "Man page:\n"
 "NAME\n"
diff --git a/man/TransverseMercatorProj.1 b/man/TransverseMercatorProj.1
index 1f5c0b8..6e23580 100644
--- a/man/TransverseMercatorProj.1
+++ b/man/TransverseMercatorProj.1
@@ -129,7 +129,7 @@
 .\" ========================================================================
 .\"
 .IX Title "TRANSVERSEMERCATORPROJ 1"
-.TH TRANSVERSEMERCATORPROJ 1 "2017-04-09" "GeographicLib 1.48" "GeographicLib Utilities"
+.TH TRANSVERSEMERCATORPROJ 1 "2017-10-05" "GeographicLib 1.49" "GeographicLib Utilities"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
@@ -162,7 +162,7 @@ section of \fIGeoConvert\fR\|(1).  For each set of geodetic coordinates, the
 corresponding projected easting, \fIx\fR, and northing, \fIy\fR, (meters) are
 printed on standard output together with the meridian convergence
 \&\fIgamma\fR (degrees) and scale \fIk\fR.  The meridian convergence is the
-bearing of the \fIy\fR axis measured clockwise from true north.
+bearing of grid north (the \fIy\fR axis) measured clockwise from true north.
 .SH "OPTIONS"
 .IX Header "OPTIONS"
 .IP "\fB\-s\fR" 4
@@ -275,6 +275,6 @@ this paper.
 .SH "HISTORY"
 .IX Header "HISTORY"
 \&\fBTransverseMercatorProj\fR was added to GeographicLib,
-<https://geographiclib.sourceforge.io>, in 2009\-01.  Prior to version 1.9 it was
-called TransverseMercatorTest (and its interface was slightly
-different).
+<https://geographiclib.sourceforge.io>, in 2009\-01.
+Prior to version 1.9 it was called TransverseMercatorTest (and its
+interface was slightly different).
diff --git a/man/TransverseMercatorProj.1.html b/man/TransverseMercatorProj.1.html
index 21148b5..d1b9e4e 100644
--- a/man/TransverseMercatorProj.1.html
+++ b/man/TransverseMercatorProj.1.html
@@ -23,7 +23,7 @@
 
 <p>Perform the transverse Mercator projections. Convert geodetic coordinates to transverse Mercator coordinates. The central meridian is given by <i>lon0</i>. The longitude of origin is the equator. The scale on the central meridian is <i>k0</i>. By default an implementation of the exact transverse Mercator projection is used.</p>
 
-<p>Geodetic coordinates are provided on standard input as a set of lines containing (blank separated) <i>latitude</i> and <i>longitude</i> (decimal degrees or degrees, minutes, seconds); for detils on the allowed formats for latitude and longitude, see the <code>GEOGRAPHIC COORDINATES</code> section of GeoConvert(1). For each set of geodetic coordinates, the corresponding projected easting, <i>x</i>, and northing, <i>y</i>, (meters) are printed on standard output together with the meridi [...]
+<p>Geodetic coordinates are provided on standard input as a set of lines containing (blank separated) <i>latitude</i> and <i>longitude</i> (decimal degrees or degrees, minutes, seconds); for detils on the allowed formats for latitude and longitude, see the <code>GEOGRAPHIC COORDINATES</code> section of GeoConvert(1). For each set of geodetic coordinates, the corresponding projected easting, <i>x</i>, and northing, <i>y</i>, (meters) are printed on standard output together with the meridi [...]
 
 <h1 id="OPTIONS">OPTIONS</h1>
 
diff --git a/man/TransverseMercatorProj.pod b/man/TransverseMercatorProj.pod
index e56d42d..017ac0e 100644
--- a/man/TransverseMercatorProj.pod
+++ b/man/TransverseMercatorProj.pod
@@ -29,7 +29,7 @@ section of GeoConvert(1).  For each set of geodetic coordinates, the
 corresponding projected easting, I<x>, and northing, I<y>, (meters) are
 printed on standard output together with the meridian convergence
 I<gamma> (degrees) and scale I<k>.  The meridian convergence is the
-bearing of the I<y> axis measured clockwise from true north.
+bearing of grid north (the I<y> axis) measured clockwise from true north.
 
 =head1 OPTIONS
 
@@ -166,6 +166,6 @@ this paper.
 =head1 HISTORY
 
 B<TransverseMercatorProj> was added to GeographicLib,
-L<https://geographiclib.sourceforge.io>, in 2009-01.  Prior to version 1.9 it was
-called TransverseMercatorTest (and its interface was slightly
-different).
+L<https://geographiclib.sourceforge.io>, in 2009-01.
+Prior to version 1.9 it was called TransverseMercatorTest (and its
+interface was slightly different).
diff --git a/man/TransverseMercatorProj.usage b/man/TransverseMercatorProj.usage
index 0b51ff2..596726e 100644
--- a/man/TransverseMercatorProj.usage
+++ b/man/TransverseMercatorProj.usage
@@ -9,7 +9,7 @@ int usage(int retval, bool brief) {
 "For full documentation type:\n"
 "    TransverseMercatorProj --help\n"
 "or visit:\n"
-"    https://geographiclib.sourceforge.io/1.48/TransverseMercatorProj.1.html\n";
+"    https://geographiclib.sourceforge.io/1.49/TransverseMercatorProj.1.html\n";
   else
     ( retval ? std::cerr : std::cout ) << "Man page:\n"
 "NAME\n"
@@ -35,8 +35,8 @@ int usage(int retval, bool brief) {
 "       GeoConvert(1).  For each set of geodetic coordinates, the corresponding\n"
 "       projected easting, x, and northing, y, (meters) are printed on standard\n"
 "       output together with the meridian convergence gamma (degrees) and scale\n"
-"       k.  The meridian convergence is the bearing of the y axis measured\n"
-"       clockwise from true north.\n"
+"       k.  The meridian convergence is the bearing of grid north (the y axis)\n"
+"       measured clockwise from true north.\n"
 "\n"
 "OPTIONS\n"
 "       -s  use the sixth-order Krueger series approximation to the transverse\n"
diff --git a/matlab/geographiclib/Contents.m b/matlab/geographiclib/Contents.m
index 5622de5..694dc4c 100644
--- a/matlab/geographiclib/Contents.m
+++ b/matlab/geographiclib/Contents.m
@@ -1,5 +1,5 @@
 % GeographicLib toolbox
-% Version 1.48 2017-04-09
+% Version 1.49 2017-10-05
 %
 %   This toolbox provides native MATLAB implementations of a subset of the
 %   C++ library, GeographicLib.  Key components of this toolbox are
diff --git a/matlab/geographiclib/cassini_fwd.m b/matlab/geographiclib/cassini_fwd.m
index 35a0670..6bcd744 100644
--- a/matlab/geographiclib/cassini_fwd.m
+++ b/matlab/geographiclib/cassini_fwd.m
@@ -21,7 +21,8 @@ function [x, y, azi, rk] = cassini_fwd(lat0, lon0, lat, lon, ellipsoid)
 %   y are in meters (more precisely the units used for the equatorial
 %   radius).  rk is dimensionless.
 %
-%   See also PROJDOC, CASSINI_INV, GEODDISTANCE, DEFAULTELLIPSOID.
+%   See also PROJDOC, CASSINI_INV, GEODDISTANCE, DEFAULTELLIPSOID,
+%     FLAT2ECC.
 
 % Copyright (c) Charles Karney (2012-2015) <charles at karney.com>.
 
diff --git a/matlab/geographiclib/cassini_inv.m b/matlab/geographiclib/cassini_inv.m
index a914525..fd70927 100644
--- a/matlab/geographiclib/cassini_inv.m
+++ b/matlab/geographiclib/cassini_inv.m
@@ -21,7 +21,7 @@ function [lat, lon, azi, rk] = cassini_inv(lat0, lon0, x, y, ellipsoid)
 %   y are in meters (more precisely the units used for the equatorial
 %   radius).  rk is dimensionless.
 %
-%   See also PROJDOC, CASSINI_FWD, GEODRECKON, DEFAULTELLIPSOID.
+%   See also PROJDOC, CASSINI_FWD, GEODRECKON, DEFAULTELLIPSOID, FLAT2ECC.
 
 % Copyright (c) Charles Karney (2012-2015) <charles at karney.com>.
 
diff --git a/matlab/geographiclib/eqdazim_fwd.m b/matlab/geographiclib/eqdazim_fwd.m
index af09631..6367678 100644
--- a/matlab/geographiclib/eqdazim_fwd.m
+++ b/matlab/geographiclib/eqdazim_fwd.m
@@ -25,14 +25,15 @@ function [x, y, azi, rk] = eqdazim_fwd(lat0, lon0, lat, lon, ellipsoid)
 %
 %   Section 14 of
 %
-%     C. F. F. Karney, Geodesics on an ellipsoid of revolution (2011),
-%     https://arxiv.org/abs/1102.1215
-%     Errata: https://geographiclib.sourceforge.io/geod-addenda.html#geod-errata
+%    C. F. F. Karney, Geodesics on an ellipsoid of revolution (2011),
+%    https://arxiv.org/abs/1102.1215
+%    Errata: https://geographiclib.sourceforge.io/geod-addenda.html#geod-errata
 %
 %   describes how to use this projection in the determination of maritime
 %   boundaries (finding the median line).
 %
-%   See also PROJDOC, EQDAZIM_INV, GEODDISTANCE, DEFAULTELLIPSOID.
+%   See also PROJDOC, EQDAZIM_INV, GEODDISTANCE, DEFAULTELLIPSOID,
+%     FLAT2ECC.
 
 % Copyright (c) Charles Karney (2012-2015) <charles at karney.com>.
 
diff --git a/matlab/geographiclib/eqdazim_inv.m b/matlab/geographiclib/eqdazim_inv.m
index 2f12787..19b8487 100644
--- a/matlab/geographiclib/eqdazim_inv.m
+++ b/matlab/geographiclib/eqdazim_inv.m
@@ -25,14 +25,14 @@ function [lat, lon, azi, rk] = eqdazim_inv(lat0, lon0, x, y, ellipsoid)
 %
 %   Section 14 of
 %
-%     C. F. F. Karney, Geodesics on an ellipsoid of revolution (2011),
-%     https://arxiv.org/abs/1102.1215
-%     Errata: https://geographiclib.sourceforge.io/geod-addenda.html#geod-errata
+%    C. F. F. Karney, Geodesics on an ellipsoid of revolution (2011),
+%    https://arxiv.org/abs/1102.1215
+%    Errata: https://geographiclib.sourceforge.io/geod-addenda.html#geod-errata
 %
 %   describes how to use this projection in the determination of maritime
 %   boundaries (finding the median line).
 %
-%   See also PROJDOC, EQDAZIM_FWD, GEODRECKON, DEFAULTELLIPSOID.
+%   See also PROJDOC, EQDAZIM_FWD, GEODRECKON, DEFAULTELLIPSOID, FLAT2ECC.
 
 % Copyright (c) Charles Karney (2012-2015) <charles at karney.com>.
 
@@ -46,7 +46,8 @@ function [lat, lon, azi, rk] = eqdazim_inv(lat0, lon0, x, y, ellipsoid)
 
   azi0 = atan2dx(x, y);
   s = hypot(x, y);
-  [lat, lon, azi, ~, m, ~, ~, sig] = geodreckon(lat0, lon0, s, azi0, ellipsoid);
+  [lat, lon, azi, ~, m, ~, ~, sig] = ...
+      geodreckon(lat0, lon0, s, azi0, ellipsoid);
   rk = m ./ s;
   rk(sig <= 0.01 * sqrt(realmin)) = 1;
 end
diff --git a/matlab/geographiclib/gedistance.m b/matlab/geographiclib/gedistance.m
index d1e47c6..188339b 100644
--- a/matlab/geographiclib/gedistance.m
+++ b/matlab/geographiclib/gedistance.m
@@ -24,7 +24,8 @@ function [s12, azi1, azi2, S12] = gedistance(lat1, lon1, lat2, lon2, ellipsoid)
 %   geoddistance solves the equivalent geodesic problem and usually this is
 %   preferable to using GEDISTANCE.
 %
-%   See also GEDOC, GERECKON, DEFAULTELLIPSOID, GEODDISTANCE, GEODRECKON.
+%   See also GEDOC, GERECKON, DEFAULTELLIPSOID, FLAT2ECC, GEODDISTANCE,
+%     GEODRECKON.
 
 % Copyright (c) Charles Karney (2014-2015) <charles at karney.com>.
 
diff --git a/matlab/geographiclib/geocent_fwd.m b/matlab/geographiclib/geocent_fwd.m
index b188ba2..3355feb 100644
--- a/matlab/geographiclib/geocent_fwd.m
+++ b/matlab/geographiclib/geocent_fwd.m
@@ -18,7 +18,7 @@ function [X, Y, Z, M] = geocent_fwd(lat, lon, h, ellipsoid)
 %   unit vector in local cartesian coordinates (east, north, up) by M
 %   transforms the vector to geocentric coordinates.
 %
-%   See also GEOCENT_INV, DEFAULTELLIPSOID.
+%   See also GEOCENT_INV, DEFAULTELLIPSOID, FLAT2ECC.
 
 % Copyright (c) Charles Karney (2015) <charles at karney.com>.
 
diff --git a/matlab/geographiclib/geocent_inv.m b/matlab/geographiclib/geocent_inv.m
index 223ab63..a2d51d5 100644
--- a/matlab/geographiclib/geocent_inv.m
+++ b/matlab/geographiclib/geocent_inv.m
@@ -16,7 +16,7 @@ function [lat, lon, h, M] = geocent_inv(X, Y, Z, ellipsoid)
 %   unit vector in geocentric coordinates by the transpose of M transforms
 %   the vector to local cartesian coordinates (east, north, up).
 %
-%   See also GEOCENT_FWD, DEFAULTELLIPSOID.
+%   See also GEOCENT_FWD, DEFAULTELLIPSOID, FLAT2ECC.
 
 % Copyright (c) Charles Karney (2015) <charles at karney.com>.
 
diff --git a/matlab/geographiclib/geodarea.m b/matlab/geographiclib/geodarea.m
index cc75c38..16ed331 100644
--- a/matlab/geographiclib/geodarea.m
+++ b/matlab/geographiclib/geodarea.m
@@ -31,7 +31,7 @@ function [A, P, N] = geodarea(lats, lons, ellipsoid)
 %     Addenda: https://geographiclib.sourceforge.io/geod-addenda.html
 %
 %   See also GEODDOC, GEODDISTANCE, GEODRECKON, POLYGONAREA,
-%     DEFAULTELLIPSOID.
+%     DEFAULTELLIPSOID, FLAT2ECC.
 
 % Copyright (c) Charles Karney (2012-2015) <charles at karney.com>.
 
diff --git a/matlab/geographiclib/geoddistance.m b/matlab/geographiclib/geoddistance.m
index a164eb7..cf40ccb 100644
--- a/matlab/geographiclib/geoddistance.m
+++ b/matlab/geographiclib/geoddistance.m
@@ -39,7 +39,7 @@ function [s12, azi1, azi2, S12, m12, M12, M21, a12] = geoddistance ...
 %     * The algorithm converges for all pairs of input points.
 %     * Additional properties of the geodesic are calcuated.
 %
-%   See also GEODDOC, GEODRECKON, GEODAREA, DEFAULTELLIPSOID.
+%   See also GEODDOC, GEODRECKON, GEODAREA, DEFAULTELLIPSOID, FLAT2ECC.
 
 % Copyright (c) Charles Karney (2012-2017) <charles at karney.com>.
 %
@@ -172,7 +172,8 @@ function [s12, azi1, azi2, S12, m12, M12, M21, a12] = geoddistance ...
   if any(g)
     dnm = Z;
     [sig12(g), salp1(g), calp1(g), salp2(g), calp2(g), dnm(g)] = ...
-        InverseStart(sbet1(g), cbet1(g), dn1(g), sbet2(g), cbet2(g), dn2(g), ...
+        InverseStart(sbet1(g), cbet1(g), dn1(g), ...
+                     sbet2(g), cbet2(g), dn2(g), ...
                      lam12(g), slam12(g), clam12(g), f, A3x);
 
     s = g & sig12 >= 0;
diff --git a/matlab/geographiclib/geodreckon.m b/matlab/geographiclib/geodreckon.m
index 913da40..2b47408 100644
--- a/matlab/geographiclib/geodreckon.m
+++ b/matlab/geographiclib/geodreckon.m
@@ -64,7 +64,7 @@ function [lat2, lon2, azi2, S12, m12, M12, M21, a12_s12] = geodreckon ...
 %       points on a single geodesic.
 %     * Additional properties of the geodesic are calcuated.
 %
-%   See also GEODDOC, GEODDISTANCE, GEODAREA, DEFAULTELLIPSOID.
+%   See also GEODDOC, GEODDISTANCE, GEODAREA, DEFAULTELLIPSOID, FLAT2ECC.
 
 % Copyright (c) Charles Karney (2012-2017) <charles at karney.com>.
 %
diff --git a/matlab/geographiclib/geographiclib_test.m b/matlab/geographiclib/geographiclib_test.m
index 6b85bf8..2bad2f1 100644
--- a/matlab/geographiclib/geographiclib_test.m
+++ b/matlab/geographiclib/geographiclib_test.m
@@ -7,13 +7,17 @@ function geographiclib_test
 
   n = 0;
   i = testrand; if i, n=n+1; fprintf('testrand fail: %d\n', i); end
-  i = GeodSolve0; if i, n=n+1; fprintf('GeodSolve0 fail: %d\n', i); end
-  i = GeodSolve1; if i, n=n+1; fprintf('GeodSolve1 fail: %d\n', i); end
-  i = GeodSolve2; if i, n=n+1; fprintf('GeodSolve2 fail: %d\n', i); end
-  i = GeodSolve4; if i, n=n+1; fprintf('GeodSolve4 fail: %d\n', i); end
-  i = GeodSolve5; if i, n=n+1; fprintf('GeodSolve5 fail: %d\n', i); end
-  i = GeodSolve6; if i, n=n+1; fprintf('GeodSolve6 fail: %d\n', i); end
-  i = GeodSolve9; if i, n=n+1; fprintf('GeodSolve9 fail: %d\n', i); end
+  i = GeoConvert0 ; if i, n=n+1; fprintf('GeoConvert0  fail: %d\n', i); end
+  i = GeoConvert8 ; if i, n=n+1; fprintf('GeoConvert8  fail: %d\n', i); end
+  i = GeoConvert16; if i, n=n+1; fprintf('GeoConvert16 fail: %d\n', i); end
+  i = GeoConvert17; if i, n=n+1; fprintf('GeoConvert17 fail: %d\n', i); end
+  i = GeodSolve0 ; if i, n=n+1; fprintf('GeodSolve0  fail: %d\n', i); end
+  i = GeodSolve1 ; if i, n=n+1; fprintf('GeodSolve1  fail: %d\n', i); end
+  i = GeodSolve2 ; if i, n=n+1; fprintf('GeodSolve2  fail: %d\n', i); end
+  i = GeodSolve4 ; if i, n=n+1; fprintf('GeodSolve4  fail: %d\n', i); end
+  i = GeodSolve5 ; if i, n=n+1; fprintf('GeodSolve5  fail: %d\n', i); end
+  i = GeodSolve6 ; if i, n=n+1; fprintf('GeodSolve6  fail: %d\n', i); end
+  i = GeodSolve9 ; if i, n=n+1; fprintf('GeodSolve9  fail: %d\n', i); end
   i = GeodSolve10; if i, n=n+1; fprintf('GeodSolve10 fail: %d\n', i); end
   i = GeodSolve11; if i, n=n+1; fprintf('GeodSolve11 fail: %d\n', i); end
   i = GeodSolve12; if i, n=n+1; fprintf('GeodSolve12 fail: %d\n', i); end
@@ -28,11 +32,19 @@ function geographiclib_test
   i = GeodSolve61; if i, n=n+1; fprintf('GeodSolve61 fail: %d\n', i); end
   i = GeodSolve73; if i, n=n+1; fprintf('GeodSolve73 fail: %d\n', i); end
   i = GeodSolve74; if i, n=n+1; fprintf('GeodSolve74 fail: %d\n', i); end
-  i = Planimeter0; if i, n=n+1; fprintf('Planimeter0 fail: %d\n', i); end
-  i = Planimeter5; if i, n=n+1; fprintf('Planimeter5 fail: %d\n', i); end
-  i = Planimeter6; if i, n=n+1; fprintf('Planimeter6 fail: %d\n', i); end
+  i = GeodSolve76; if i, n=n+1; fprintf('GeodSolve76 fail: %d\n', i); end
+  i = GeodSolve78; if i, n=n+1; fprintf('GeodSolve78 fail: %d\n', i); end
+  i = Planimeter0 ; if i, n=n+1; fprintf('Planimeter0  fail: %d\n', i); end
+  i = Planimeter5 ; if i, n=n+1; fprintf('Planimeter5  fail: %d\n', i); end
+  i = Planimeter6 ; if i, n=n+1; fprintf('Planimeter6  fail: %d\n', i); end
   i = Planimeter12; if i, n=n+1; fprintf('Planimeter12 fail: %d\n', i); end
   i = Planimeter13; if i, n=n+1; fprintf('Planimeter13 fail: %d\n', i); end
+  i = TransverseMercatorProj1;
+  if i, n=n+1; fprintf('TransverseMercatorProj1 fail: %d\n', i); end
+  i = TransverseMercatorProj3;
+  if i, n=n+1; fprintf('TransverseMercatorProj3 fail: %d\n', i); end
+  i = TransverseMercatorProj5;
+  if i, n=n+1; fprintf('TransverseMercatorProj5 fail: %d\n', i); end
   i = geodreckon0; if i, n=n+1; fprintf('geodreckon0 fail: %d\n', i); end
   i = gedistance0; if i, n=n+1; fprintf('gedistance0 fail: %d\n', i); end
   i = tranmerc0; if i, n=n+1; fprintf('tranmerc0 fail: %d\n', i); end
@@ -180,6 +192,39 @@ function ell = ellipsoid(a, f)
   ell = [a, flat2ecc(f)];
 end
 
+function n = GeoConvert0
+  n = 0;
+  [x, y, zone, isnorth] = utmups_fwd(33.3, 44.4);
+  mgrs = mgrs_fwd(x, y, zone, isnorth, 2);
+  n = n + ~strcmp(mgrs, '38SMB4484');
+end
+
+function n = GeoConvert8
+% Check fix to PolarStereographic es initialization blunder (2015-05-18)
+  n = 0;
+  [x, y, zone, isnorth] = utmups_fwd(86, 0);
+  n = n + ~(zone == 0);
+  n = n + ~(isnorth);
+  n = n + assertEquals(x, 2000000, 0.5e-6);
+  n = n + assertEquals(y, 1555731.570643, 0.5e-6);
+end
+
+function n = GeoConvert16
+% Check MGRS::Forward improved rounding fix, 2015-07-22
+  n = 0;
+  mgrs = mgrs_fwd(444140.6, 3684706.3, 38, true, 8);
+  n = n + ~strcmp(mgrs, '38SMB4414060084706300');
+end
+
+function n = GeoConvert17
+% Check MGRS::Forward digit consistency fix, 2015-07-23
+  n = 0;
+  mgrs = mgrs_fwd(500000, 63.811, 38, true, 8);
+  n = n + ~strcmp(mgrs, '38NNF0000000000063811');
+  mgrs = mgrs_fwd(500000, 63.811, 38, true, 9);
+  n = n + ~strcmp(mgrs, '38NNF000000000000638110');
+end
+
 function n = GeodSolve0
   n = 0;
   [s12, azi1, azi2] = geoddistance(40.6, -73.8, 49.01666667, 2.55);
@@ -451,6 +496,26 @@ function n = GeodSolve74
   n = n + assertEquals(S12, 286698586.30197, 5e-4);
 end
 
+function n = GeodSolve76
+% The distance from Wellington and Salamanca (a classic failure of
+% Vincenty)
+  n = 0;
+  [s12, azi1, azi2] = ...
+      geoddistance(-(41+19/60), 174+49/60, 40+58/60, -(5+30/60));
+  n = n + assertEquals(azi1, 160.39137649664, 0.5e-11);
+  n = n + assertEquals(azi2,  19.50042925176, 0.5e-11);
+  n = n + assertEquals(s12,  19960543.857179, 0.5e-6);
+end
+
+function n = GeodSolve78
+% An example where the NGS calculator fails to converge
+  n = 0;
+  [s12, azi1, azi2] = geoddistance(27.2, 0.0, -27.1, 179.5);
+  n = n + assertEquals(azi1,  45.82468716758, 0.5e-11);
+  n = n + assertEquals(azi2, 134.22776532670, 0.5e-11);
+  n = n + assertEquals(s12,  19974354.765767, 0.5e-6);
+end
+
 function n = Planimeter0
 % Check fix for pole-encircling bug found 2011-03-16
   n = 0;
@@ -526,6 +591,51 @@ function n = Planimeter13
   n = n + assertEquals(area, 32415230256.0, 1);
 end
 
+function n = TransverseMercatorProj1
+% Test fix to bad meridian convergence at pole with
+% TransverseMercatorExact found 2013-06-26
+  n = 0;
+  [x, y, gam, k] = tranmerc_fwd(0, 0, 90, 75);
+  n = n + assertEquals(x, 0, 0.5e-6);
+  n = n + assertEquals(y, 10001965.72935, 0.5e-4);
+  n = n + assertEquals(gam, 75, 0.5e-12);
+  n = n + assertEquals(k, 1, 0.5e-12);
+end
+
+function n = TransverseMercatorProj3
+% Test fix to bad scale at pole with TransverseMercatorExact
+% found 2013-06-30 (quarter meridian = 10001965.7293127228128889202m)
+  n = 0;
+  [lat, lon, gam, k] = tranmerc_inv(0, 0, 0, 10001965.7293127228);
+  n = n + assertEquals(lat, 90, 1e-11);
+  if abs(lon) < 90
+    n = n + assertEquals(lon, 0, 0.5e-12);
+    n = n + assertEquals(gam, 0, 0.5e-12);
+  else
+    n = n + assertEquals(abs(lon), 180, 0.5e-12);
+    n = n + assertEquals(abs(gam), 180, 0.5e-12);
+  end
+  n = n + assertEquals(k, 1.0, 0.5e-12);
+end
+
+function n = TransverseMercatorProj5
+% Generic tests for transverse Mercator added 2017-04-15 to check use of
+% complex arithmetic to do Clenshaw sum.
+  n = 0;
+  k0 = 0.9996;
+  ell = ellipsoid(6.4e6, 1/150);
+  [x, y, gam, k] = tranmerc_fwd(0, 0, 20, 30, ell);
+  n = n + assertEquals(x * k0, 3266035.453860, 0.5e-6);
+  n = n + assertEquals(y * k0, 2518371.552676, 0.5e-6);
+  n = n + assertEquals(gam, 11.207356502141, 0.5e-12);
+  n = n + assertEquals(k * k0, 1.134138960741, 0.5e-12);
+  [lat, lon, gam, k] = tranmerc_inv(0, 0, 3.3e6 / k0, 2.5e6 / k0, ell);
+  n = n + assertEquals(lat, 19.80370996793, 0.5e-11);
+  n = n + assertEquals(lon, 30.24919702282, 0.5e-11);
+  n = n + assertEquals(gam, 11.214378172893, 0.5e-12);
+  n = n + assertEquals(k * k0, 1.137025775759, 0.5e-12);
+end
+
 function n = geodreckon0
 % Check mixed array size bugs
   n = 0;
diff --git a/matlab/geographiclib/gereckon.m b/matlab/geographiclib/gereckon.m
index c373180..5c27857 100644
--- a/matlab/geographiclib/gereckon.m
+++ b/matlab/geographiclib/gereckon.m
@@ -28,7 +28,8 @@ function [lat2, lon2, azi2, S12] = gereckon(lat1, lon1, s12, azi1, ellipsoid)
 %   geodreckon solves the equivalent geodesic problem and usually this is
 %   preferable to using GERECKON.
 %
-%   See also GEDOC, GEDISTANCE, DEFAULTELLIPSOID, GEODDISTANCE, GEODRECKON.
+%   See also GEDOC, GEDISTANCE, DEFAULTELLIPSOID, FLAT2ECC, GEODDISTANCE,
+%     GEODRECKON.
 
 % Copyright (c) Charles Karney (2014-2015) <charles at karney.com>.
 
diff --git a/matlab/geographiclib/gnomonic_fwd.m b/matlab/geographiclib/gnomonic_fwd.m
index 93be600..0e60af0 100644
--- a/matlab/geographiclib/gnomonic_fwd.m
+++ b/matlab/geographiclib/gnomonic_fwd.m
@@ -40,7 +40,8 @@ function [x, y, azi, rk] = gnomonic_fwd(lat0, lon0, lat, lon, ellipsoid)
 %   which also includes methods for solving the "intersection" and
 %   "interception" problems using the gnomonic projection.
 %
-%   See also PROJDOC, GNOMONIC_INV, GEODDISTANCE, DEFAULTELLIPSOID.
+%   See also PROJDOC, GNOMONIC_INV, GEODDISTANCE, DEFAULTELLIPSOID,
+%     FLAT2ECC.
 
 % Copyright (c) Charles Karney (2012-2015) <charles at karney.com>.
 
diff --git a/matlab/geographiclib/gnomonic_inv.m b/matlab/geographiclib/gnomonic_inv.m
index a5cc957..08d95ca 100644
--- a/matlab/geographiclib/gnomonic_inv.m
+++ b/matlab/geographiclib/gnomonic_inv.m
@@ -41,7 +41,7 @@ function [lat, lon, azi, rk] = gnomonic_inv(lat0, lon0, x, y, ellipsoid)
 %   which also includes methods for solving the "intersection" and
 %   "interception" problems using the gnomonic projection.
 %
-%   See also PROJDOC, GNOMONIC_FWD, GEODRECKON, DEFAULTELLIPSOID.
+%   See also PROJDOC, GNOMONIC_FWD, GEODRECKON, DEFAULTELLIPSOID, FLAT2ECC.
 
 % Copyright (c) Charles Karney (2012-2015) <charles at karney.com>.
 
diff --git a/matlab/geographiclib/loccart_fwd.m b/matlab/geographiclib/loccart_fwd.m
index 3082f5e..91a424c 100644
--- a/matlab/geographiclib/loccart_fwd.m
+++ b/matlab/geographiclib/loccart_fwd.m
@@ -20,7 +20,7 @@ function [x, y, z, M] = loccart_fwd(lat0, lon0, h0, lat, lon, h, ellipsoid)
 %   transforms the vector to local cartesian coordinates at (lat0, lon0,
 %   h0).
 %
-%   See also LOCCART_INV, DEFAULTELLIPSOID.
+%   See also LOCCART_INV, DEFAULTELLIPSOID, FLAT2ECC.
 
 % Copyright (c) Charles Karney (2015) <charles at karney.com>.
 
diff --git a/matlab/geographiclib/loccart_inv.m b/matlab/geographiclib/loccart_inv.m
index c5e56b1..c1f7bf8 100644
--- a/matlab/geographiclib/loccart_inv.m
+++ b/matlab/geographiclib/loccart_inv.m
@@ -19,7 +19,7 @@ function [lat, lon, h, M] = loccart_inv(lat0, lon0, h0, x, y, z, ellipsoid)
 %   transpose of M transforms the vector to local cartesian coordinates at
 %   (lat, lon, h).
 %
-%   See also LOCCART_FWD, DEFAULTELLIPSOID.
+%   See also LOCCART_FWD, DEFAULTELLIPSOID, FLAT2ECC.
 
 % Copyright (c) Charles Karney (2015) <charles at karney.com>.
 
diff --git a/matlab/geographiclib/polarst_fwd.m b/matlab/geographiclib/polarst_fwd.m
index 8045a31..db72dc6 100644
--- a/matlab/geographiclib/polarst_fwd.m
+++ b/matlab/geographiclib/polarst_fwd.m
@@ -22,7 +22,7 @@ function [x, y, gam, k] = polarst_fwd(isnorth, lat, lon, ellipsoid)
 %   dimensionless.
 %
 %   See also PROJDOC, POLARST_INV, UTMUPS_FWD, UTMUPS_INV,
-%     DEFAULTELLIPSOID.
+%     DEFAULTELLIPSOID, FLAT2ECC.
 
 % Copyright (c) Charles Karney (2015) <charles at karney.com>.
 
diff --git a/matlab/geographiclib/polarst_inv.m b/matlab/geographiclib/polarst_inv.m
index dbf271b..3d87710 100644
--- a/matlab/geographiclib/polarst_inv.m
+++ b/matlab/geographiclib/polarst_inv.m
@@ -22,7 +22,7 @@ function [lat, lon, gam, k] = polarst_inv(isnorth, x, y, ellipsoid)
 %   dimensionless.
 %
 %   See also PROJDOC, POLARST_FWD, UTMUPS_FWD, UTMUPS_INV,
-%     DEFAULTELLIPSOID.
+%     DEFAULTELLIPSOID, FLAT2ECC.
 
 % Copyright (c) Charles Karney (2015) <charles at karney.com>.
 
diff --git a/matlab/geographiclib/projdoc.m b/matlab/geographiclib/projdoc.m
index 51441e5..3761e2a 100644
--- a/matlab/geographiclib/projdoc.m
+++ b/matlab/geographiclib/projdoc.m
@@ -63,8 +63,8 @@ function projdoc
 %       applications in geodesy.
 %
 %   See also TRANMERC_FWD, TRANMERC_INV, POLARST_FWD, POLARST_INV,
-%     EQDAZIM_FWD, EQDAZIM_INV, CASSINI_FWD, CASSINI_INV,
-%     GNOMONIC_FWD, GNOMONIC_INV, DEFAULTELLIPSOID, ECC2FLAT, FLAT2ECC.
+%     EQDAZIM_FWD, EQDAZIM_INV, CASSINI_FWD, CASSINI_INV, GNOMONIC_FWD,
+%     GNOMONIC_INV, DEFAULTELLIPSOID, ECC2FLAT, FLAT2ECC.
 
 % Copyright (c) Charles Karney (2012-2015) <charles at karney.com>.
 
diff --git a/matlab/geographiclib/tranmerc_fwd.m b/matlab/geographiclib/tranmerc_fwd.m
index a7865d3..5e217f6 100644
--- a/matlab/geographiclib/tranmerc_fwd.m
+++ b/matlab/geographiclib/tranmerc_fwd.m
@@ -37,9 +37,9 @@ function [x, y, gam, k] = tranmerc_fwd(lat0, lon0, lat, lon, ellipsoid)
 %   can be continued accurately over the poles to the opposite meridian.
 %
 %   See also PROJDOC, TRANMERC_INV, UTMUPS_FWD, UTMUPS_INV,
-%     DEFAULTELLIPSOID.
+%     DEFAULTELLIPSOID, FLAT2ECC.
 
-% Copyright (c) Charles Karney (2012-2015) <charles at karney.com>.
+% Copyright (c) Charles Karney (2012-2017) <charles at karney.com>.
 
   narginchk(4, 5)
   if nargin < 5, ellipsoid = defaultellipsoid; end
@@ -92,34 +92,28 @@ function [x, y, gam, k] = tranmerc_fwd(lat0, lon0, lat, lon, ellipsoid)
   end
   c0 = cos(2 * xip); ch0 = cosh(2 * etap);
   s0 = sin(2 * xip); sh0 = sinh(2 * etap);
-  ar = 2 * c0 .* ch0; ai = -2 * s0 .* sh0;
+  a = 2 * complex(c0 .* ch0, -s0 .* sh0);
   j = maxpow;
-  xi0 = Z; yr0 = Z;
+  y0 = complex(Z); y1 = y0;
+  z0 = y0; z1 = y0;
   if mod(j, 2)
-    xi0 = xi0 + alp(j);
-    yr0 = yr0 + 2 * maxpow * alp(j);
+    y0 = y0 + alp(j);
+    z0 = z0 + 2*j * alp(j);
     j = j - 1;
   end
-  xi1 = Z; eta0 = Z; eta1 = Z;
-  yi0 = Z; yr1 = Z; yi1 = Z;
   for j = j : -2 : 1
-    xi1  = ar .* xi0 - ai .* eta0 - xi1 + alp(j);
-    eta1 = ai .* xi0 + ar .* eta0 - eta1;
-    yr1 = ar .* yr0 - ai .* yi0 - yr1 + 2 * j * alp(j);
-    yi1 = ai .* yr0 + ar .* yi0 - yi1;
-    xi0  = ar .* xi1 - ai .* eta1 - xi0 + alp(j-1);
-    eta0 = ai .* xi1 + ar .* eta1 - eta0;
-    yr0 = ar .* yr1 - ai .* yi1 - yr0 + 2 * (j-1) * alp(j-1);
-    yi0 = ai .* yr1 + ar .* yi1 - yi0;
+    y1 = a .* y0 - y1 +       alp(j);
+    z1 = a .* z0 - z1 + 2*j * alp(j);
+    y0 = a .* y1 - y0 +           alp(j-1);
+    z0 = a .* z1 - z0 + 2*(j-1) * alp(j-1);
   end
-  ar = ar/2; ai = ai/2;
-  yr1 = 1 - yr1 + ar .* yr0 - ai .* yi0;
-  yi1 =   - yi1 + ai .* yr0 + ar .* yi0;
-  ar = s0 .* ch0; ai = c0 .* sh0;
-  xi  = xip  + ar .* xi0 - ai .* eta0;
-  eta = etap + ai .* xi0 + ar .* eta0;
-  gam = gam - atan2dx(yi1, yr1);
-  k = k .* (b1 * hypot(yr1, yi1));
+  a = a/2;
+  z1 = 1 - z1 + z0 .* a;
+  a = complex(s0 .* ch0, c0 .* sh0);
+  y1 = complex(xip, etap) + y0 .* a;
+  gam = gam - atan2dx(imag(z1), real(z1));
+  k = k .* (b1 * abs(z1));
+  xi = real(y1); eta = imag(y1);
   xi(backside) = pi - xi(backside);
   y = a1 * xi .* latsign;
   x = a1 * eta .* lonsign;
diff --git a/matlab/geographiclib/tranmerc_inv.m b/matlab/geographiclib/tranmerc_inv.m
index 85ab9c0..fd38056 100644
--- a/matlab/geographiclib/tranmerc_inv.m
+++ b/matlab/geographiclib/tranmerc_inv.m
@@ -37,9 +37,9 @@ function [lat, lon, gam, k] = tranmerc_inv(lat0, lon0, x, y, ellipsoid)
 %   can be continued accurately over the poles to the opposite meridian.
 %
 %   See also PROJDOC, TRANMERC_FWD, UTMUPS_FWD, UTMUPS_INV,
-%     DEFAULTELLIPSOID.
+%     DEFAULTELLIPSOID, FLAT2ECC.
 
-% Copyright (c) Charles Karney (2012-2015) <charles at karney.com>.
+% Copyright (c) Charles Karney (2012-2017) <charles at karney.com>.
 
   narginchk(4, 5)
   if nargin < 5, ellipsoid = defaultellipsoid; end
@@ -86,34 +86,28 @@ function [lat, lon, gam, k] = tranmerc_inv(lat0, lon0, x, y, ellipsoid)
 
   c0 = cos(2 * xi); ch0 = cosh(2 * eta);
   s0 = sin(2 * xi); sh0 = sinh(2 * eta);
-  ar = 2 * c0 .* ch0; ai = -2 * s0 .* sh0;
+  a = 2 * complex(c0 .* ch0, -s0 .* sh0);
   j = maxpow;
-  xip0 = Z; yr0 = Z;
+  y0 = complex(Z); y1 = y0;
+  z0 = y0; z1 = y0;
   if mod(j, 2)
-    xip0 = xip0 + bet(j);
-    yr0 = yr0 - 2 * maxpow * bet(j);
+    y0 = y0 + bet(j);
+    z0 = z0 - 2*j * bet(j);
     j = j - 1;
   end
-  xip1 = Z; etap0 = Z; etap1 = Z;
-  yi0 = Z; yr1 = Z; yi1 = Z;
   for j = j : -2 : 1
-    xip1  = ar .* xip0 - ai .* etap0 - xip1 - bet(j);
-    etap1 = ai .* xip0 + ar .* etap0 - etap1;
-    yr1 = ar .* yr0 - ai .* yi0 - yr1 - 2 * j * bet(j);
-    yi1 = ai .* yr0 + ar .* yi0 - yi1;
-    xip0  = ar .* xip1 - ai .* etap1 - xip0 - bet(j-1);
-    etap0 = ai .* xip1 + ar .* etap1 - etap0;
-    yr0 = ar .* yr1 - ai .* yi1 - yr0 - 2 * (j-1) * bet(j-1);
-    yi0 = ai .* yr1 + ar .* yi1 - yi0;
+    y1 = a .* y0 - y1 -       bet(j);
+    z1 = a .* z0 - z1 - 2*j * bet(j);
+    y0 = a .* y1 - y0 -           bet(j-1);
+    z0 = a .* z1 - z0 - 2*(j-1) * bet(j-1);
   end
-  ar = ar/2; ai = ai/2;
-  yr1 = 1 - yr1 + ar .* yr0 - ai .* yi0;
-  yi1 =   - yi1 + ai .* yr0 + ar .* yi0;
-  ar = s0 .* ch0; ai = c0 .* sh0;
-  xip  = xi  + ar .* xip0 - ai .* etap0;
-  etap = eta + ai .* xip0 + ar .* etap0;
-  gam = atan2dx(yi1, yr1);
-  k = b1 ./ hypot(yr1, yi1);
+  a = a/2;
+  z1 = 1 - z1 + z0 .* a;
+  a = complex(s0 .* ch0, c0 .* sh0);
+  y1 = complex(xi, eta) + y0 .* a;
+  gam = atan2dx(imag(z1), real(z1));
+  k = b1 ./ abs(z1);
+  xip = real(y1); etap = imag(y1);
   s = sinh(etap);
   c = max(0, cos(xip));
   r = hypot(s, c);
diff --git a/maxima/auxlat.mac b/maxima/auxlat.mac
index 6b8b3d3..63c06b1 100644
--- a/maxima/auxlat.mac
+++ b/maxima/auxlat.mac
@@ -1,8 +1,8 @@
 /*
 Compute series expansions for the auxiliary latitudes.
 
-Copyright (c) Charles Karney (2014) <charles at karney.com> and licensed
-under the MIT/X11 License.  For more information, see
+Copyright (c) Charles Karney (2014-2017) <charles at karney.com> and
+licensed under the MIT/X11 License.  For more information, see
 https://geographiclib.sourceforge.io/
 
 This maxima program compute the coefficients for trigonometric series
@@ -30,6 +30,14 @@ Instructions:
      dispall()$
      closefile()$
 
+Timings:
+maxpow time(s)
+   6     13
+   8     41
+  10    114
+  12    293
+  14    708
+  16   1629
 */
 
 /*
@@ -51,10 +59,13 @@ reverta(expr,var1,var2,eps,pow):=block([tauacc:1,sigacc:0,dsig],
   var2+sigacc)$
 
 /* beta in terms of phi */
-beta_phi:taylor(atan((1-n)/(1+n)*tan(phi)),n,0,maxpow)$
-beta_phi:subst([atan(tan(phi))=phi,tan(phi)=sin(phi)/cos(phi)],
-  ratdisrep(beta_phi))$
-beta_phi:trigreduce(ratsimp(beta_phi))$
+beta_phi:phi+sum((-n)^j/j*sin(2*j*phi),j,1,maxpow)$
+/* Alt:
+  beta_phi:taylor(atan((1-n)/(1+n)*tan(phi)),n,0,maxpow)$
+  beta_phi:subst([atan(tan(phi))=phi,tan(phi)=sin(phi)/cos(phi)],
+    ratdisrep(beta_phi))$
+  beta_phi:trigreduce(ratsimp(beta_phi))$
+*/
 /* phi in terms of beta */
 phi_beta:subst([n=-n,phi=beta],beta_phi)$
 /* Alt:
@@ -125,11 +136,13 @@ chi_beta:expand(trigreduce(taylor(subst([phi=phi_beta],chi_phi),n,0,maxpow)))$
 beta_theta:expand(trigreduce
   (taylor(subst([phi=phi_theta],beta_phi),n,0,maxpow)))$
 beta_xi:expand(trigreduce(taylor(subst([phi=phi_xi],beta_phi),n,0,maxpow)))$
-chi_theta:expand(trigreduce(taylor(subst([phi=phi_theta],chi_phi),n,0,maxpow)))$
+chi_theta:expand(trigreduce
+  (taylor(subst([phi=phi_theta],chi_phi),n,0,maxpow)))$
 chi_xi:expand(trigreduce(taylor(subst([phi=phi_xi],chi_phi),n,0,maxpow)))$
 mu_theta:expand(trigreduce(taylor(subst([phi=phi_theta],mu_phi),n,0,maxpow)))$
 mu_xi:expand(trigreduce(taylor(subst([phi=phi_xi],mu_phi),n,0,maxpow)))$
-theta_chi:expand(trigreduce(taylor(subst([phi=phi_chi],theta_phi),n,0,maxpow)))$
+theta_chi:expand(trigreduce
+  (taylor(subst([phi=phi_chi],theta_phi),n,0,maxpow)))$
 theta_mu:expand(trigreduce(taylor(subst([phi=phi_mu],theta_phi),n,0,maxpow)))$
 theta_xi:expand(trigreduce(taylor(subst([phi=phi_xi],theta_phi),n,0,maxpow)))$
 xi_beta:expand(trigreduce(taylor(subst([phi=phi_beta],xi_phi),n,0,maxpow)))$
diff --git a/maxima/geod.mac b/maxima/geod.mac
index 403bd11..aeea1d5 100644
--- a/maxima/geod.mac
+++ b/maxima/geod.mac
@@ -151,11 +151,11 @@ computeI2(maxpow):=block([sintegrand,sintegrandexp,s,sigma,tau1,k2,eps],
 
 Express
 
-    I3 = integrate( (2-f)/(1+(1-f)*sqrt(1+k2*sin(sigma1)^2)), sigma1, 0, sigma )
+   I3 = integrate( (2-f)/(1+(1-f)*sqrt(1+k2*sin(sigma1)^2)), sigma1, 0, sigma )
 
 as a series
 
-    A3 * ( sigma + sum(C3[l] * sin(2*l*sigma), l, 1, maxpow-1) )
+   A3 * ( sigma + sum(C3[l] * sin(2*l*sigma), l, 1, maxpow-1) )
 
 valid for f and k2 small.  It is convenient to write k2 = 4 * eps / (1 -
 eps)^2 and f = 2*n/(1+n) and expand in eps and n.  This procedure leads
diff --git a/maxima/geodesic.mac b/maxima/geodesic.mac
index d272b68..09cf512 100644
--- a/maxima/geodesic.mac
+++ b/maxima/geodesic.mac
@@ -101,7 +101,7 @@ documented at
 */
 
 /* The corresponding version of GeographicLib */
-geod_version:[1,48,0]$
+geod_version:[1,49,0]$
 
 /* Load series created by geod.mac (NEED TO UNCOMMENT THE LAST LINE OF
 geod.mac TO GENERATE THIS FILE). */
diff --git a/maxima/polyprint.mac b/maxima/polyprint.mac
index 2ea4385..7243668 100644
--- a/maxima/polyprint.mac
+++ b/maxima/polyprint.mac
@@ -5,22 +5,31 @@ simplenum:true$
 count:0$
 jtaylor(expr,var1,var2,ord):=expand(subst([zz=1],
     ratdisrep(taylor(subst([var1=zz*var1,var2=zz*var2],expr),zz,0,ord))))$
-h(x):=if x=0 then 0 else block([n:0],while integerp(x/16) do (x:x/16,n:n+1),n);
-formatnum(x):=block([n:h(x)],
-  if n>4 then (x:x/16^n,n:concat("<<",4*n)) else n:"",
-  concat(if x=0 then "0"
-  else if abs(x)<1000000 then string(x)
-  else concat(if x<0 then "-" else "",
-    "0x",block([obase:16,s],
-      s:sdowncase(string(abs(x))),
-      if substring(s,1,2) = "0" then s:substring(s,2),
-      s)),"LL",n))$
+h(x):=if x=0 then 0 else block([n:0],while not(oddp(x)) do (x:x/2,n:n+1),n);
+decorhex(x):=if x=0 then "0" else if abs(x)<10^12 then string(x)
+else concat(if x<0 then "-" else "",
+  "0x",block([obase:16,s],
+    s:sdowncase(string(abs(x))),
+    if substring(s,1,2) = "0" then s:substring(s,2),
+    s))$
+formatnum(x):=block([n,neg:is(x<0),s1,s2,ll],x:abs(x),n:h(x),
+  ll:if x<2^31 then "" else "LL",
+  s1:concat(if neg then "-" else "", decorhex(x), ll),
+  s2:concat(if neg then "-(" else "", decorhex(x/2^n), ll, "<<", n,
+    if neg then ")" else ""),
+  if slength(s2) < slength(s1) then s2 else s1)$
 formatnumx(x):=if simplenum then
 concat(string(x),if abs(x) < 2^31 then "" else "LL") else
-if abs(x)<2^63
-then concat("real(",formatnum(x),")") else
-concat("reale(",formatnum(floor(x/2^52)),",",
-  formatnum(x-floor(x/2^52)*2^52),")")$
+if abs(x)<2^63 then (if abs(x) < 2^24
+  /* test used to be: abs(x)/2^h(abs(x)) < 2^24; but Visual Studio
+  complains about truncation of __int64 to real even if trailing bits
+  are zero */
+  then formatnum(x)
+  else concat(s:if x<0 then "-" else "","real(",formatnum(abs(x)),")"))
+else
+block([s:if x<0 then "-" else ""], x:abs(x),
+  concat(s,"reale(",formatnum(floor(x/2^52)),",",
+    formatnum(x-floor(x/2^52)*2^52),")"))$
 printterm(x,line):=block([lx:slength(x)+1,lline:slength(line)],
   count:count+1,
   x:concat(x,if simplenum then ", " else ","),
diff --git a/python/README.rst b/python/README.rst
index 804621f..20d436d 100644
--- a/python/README.rst
+++ b/python/README.rst
@@ -4,4 +4,4 @@ This implements
 ellipsoid of revolution.
 
 Documentation is available at
-`<https://geographiclib.sourceforge.io/1.48/python/>`_.
+`<https://geographiclib.sourceforge.io/1.49/python/>`_.
diff --git a/python/doc/index.rst b/python/doc/index.rst
index 89a3362..777c59f 100644
--- a/python/doc/index.rst
+++ b/python/doc/index.rst
@@ -45,8 +45,8 @@ and install it with
 
 .. code-block:: sh
 
-  tar xpfz geographiclib-1.48.tar.gz
-  cd geographiclib-1.48
+  tar xpfz geographiclib-1.49.tar.gz
+  cd geographiclib-1.49
   python setup.py install
 
 It's a good idea to run the unit tests to verify that the installation
@@ -98,6 +98,10 @@ GeographicLib in various languages
 Change log
 ----------
 
+* Version 1.49 (released 2017-10-05)
+
+  * Fix code formatting; add tests.
+
 * Version 1.48 (released 2017-04-09)
 
   * Change default range for longitude and azimuth to (−180°, 180°]
diff --git a/python/geographiclib/__init__.py b/python/geographiclib/__init__.py
index 3b5f8f5..b160a28 100644
--- a/python/geographiclib/__init__.py
+++ b/python/geographiclib/__init__.py
@@ -1,7 +1,7 @@
 """geographiclib: geodesic routines from GeographicLib"""
 
-__version_info__ = (1, 48, 0)
+__version_info__ = (1, 49, 0)
 """GeographicLib version as a tuple"""
 
-__version__ = "1.48"
+__version__ = "1.49"
 """GeographicLib version as a string"""
diff --git a/python/geographiclib/geodesic.py b/python/geographiclib/geodesic.py
index 08732e7..536127f 100644
--- a/python/geographiclib/geodesic.py
+++ b/python/geographiclib/geodesic.py
@@ -907,10 +907,11 @@ class Geodesic(object):
               # instead of sqrt(epsilon).
               tripn = abs(v) <= 16 * Geodesic.tol0_
               continue
-          # Either dv was not positive or updated value was outside legal range.
-          # Use the midpoint of the bracket as the next estimate.  This
-          # mechanism is not needed for the WGS84 ellipsoid, but it does catch
-          # problems with more eccentric ellipsoids.  Its efficacy is such for
+          # Either dv was not positive or updated value was outside
+          # legal range.  Use the midpoint of the bracket as the next
+          # estimate.  This mechanism is not needed for the WGS84
+          # ellipsoid, but it does catch problems with more eccentric
+          # ellipsoids.  Its efficacy is such for
           # the WGS84 test set with the starting guess set to alp1 = 90deg:
           # the WGS84 test set: mean = 5.21, sd = 3.93, max = 24
           # WGS84 and random input: mean = 4.74, sd = 0.99
@@ -1139,7 +1140,8 @@ class Geodesic(object):
     return result
 
   def Line(self, lat1, lon1, azi1,
-           caps = GeodesicCapability.STANDARD | GeodesicCapability.DISTANCE_IN):
+           caps = GeodesicCapability.STANDARD |
+           GeodesicCapability.DISTANCE_IN):
     """Return a GeodesicLine object
 
     :param lat1: latitude of the first point in degrees
@@ -1283,8 +1285,10 @@ class Geodesic(object):
   ALL           = GeodesicCapability.ALL
   """All of the above."""
   LONG_UNROLL   = GeodesicCapability.LONG_UNROLL
-  """Unroll longitudes, rather than reducing them to the reducing them to
-  the range [-180d,180d]."""
+  """Unroll longitudes, rather than reducing them to the range
+  [-180d,180d].
+
+  """
 
 Geodesic.WGS84 = Geodesic(Constants.WGS84_a, Constants.WGS84_f)
 """Instantiation for the WGS84 ellipsoid"""
diff --git a/python/geographiclib/test/test_geodesic.py b/python/geographiclib/test/test_geodesic.py
index c6d2aaf..10803a4 100644
--- a/python/geographiclib/test/test_geodesic.py
+++ b/python/geographiclib/test/test_geodesic.py
@@ -444,6 +444,22 @@ class GeodSolveTest(unittest.TestCase):
     self.assertAlmostEqual(inv["M21"],   0.999999995, delta = 5e-9);
     self.assertAlmostEqual(inv["S12"], 286698586.30197, delta = 5e-4);
 
+  def test_GeodSolve76(self):
+    # The distance from Wellington and Salamanca (a classic failure of
+    # Vincenty)
+    inv = Geodesic.WGS84.Inverse(-(41+19/60.0), 174+49/60.0,
+                                 40+58/60.0, -(5+30/60.0))
+    self.assertAlmostEqual(inv["azi1"], 160.39137649664, delta = 0.5e-11)
+    self.assertAlmostEqual(inv["azi2"],  19.50042925176, delta = 0.5e-11)
+    self.assertAlmostEqual(inv["s12"],  19960543.857179, delta = 0.5e-6)
+
+  def test_GeodSolve78(self):
+    # An example where the NGS calculator fails to converge
+    inv = Geodesic.WGS84.Inverse(27.2, 0.0, -27.1, 179.5)
+    self.assertAlmostEqual(inv["azi1"],  45.82468716758, delta = 0.5e-11)
+    self.assertAlmostEqual(inv["azi2"], 134.22776532670, delta = 0.5e-11)
+    self.assertAlmostEqual(inv["s12"],  19974354.765767, delta = 0.5e-6)
+
 class PlanimeterTest(unittest.TestCase):
 
   polygon = Geodesic.WGS84.Polygon(False)
diff --git a/python/setup.py b/python/setup.py
index 4f68283..a59cd00 100644
--- a/python/setup.py
+++ b/python/setup.py
@@ -38,7 +38,7 @@ class TestCommand(Command):
                                           ]))
 
 name = "geographiclib"
-version = "1.48"
+version = "1.49"
 
 setup(name = name,
       version = version,
diff --git a/src/AlbersEqualArea.cpp b/src/AlbersEqualArea.cpp
index 95ee2b5..341c131 100644
--- a/src/AlbersEqualArea.cpp
+++ b/src/AlbersEqualArea.cpp
@@ -2,7 +2,7 @@
  * \file AlbersEqualArea.cpp
  * \brief Implementation for GeographicLib::AlbersEqualArea class
  *
- * Copyright (c) Charles Karney (2010-2016) <charles at karney.com> and licensed
+ * Copyright (c) Charles Karney (2010-2017) <charles at karney.com> and licensed
  * under the MIT/X11 License.  For more information, see
  * https://geographiclib.sourceforge.io/
  **********************************************************************/
@@ -194,7 +194,8 @@ namespace GeographicLib {
                Math::sq(cxi1/cphi1) * (1 + sphi1) / (1 + sxi1))) ) *
           (1 + _e2 * (sphi1 + sphi2 + sphi1 * sphi2)) /
           (1 +       (sphi1 + sphi2 + sphi1 * sphi2)) +
-          (scbet22 * (sphi2 <= 0 ? 1 - sphi2 : Math::sq(cphi2) / ( 1 + sphi2)) +
+          (scbet22 * (sphi2 <= 0 ? 1 - sphi2 :
+                      Math::sq(cphi2) / ( 1 + sphi2)) +
            scbet12 * (sphi1 <= 0 ? 1 - sphi1 : Math::sq(cphi1) / ( 1 + sphi1)))
           * (_e2 * (1 + sphi1 + sphi2 + _e2 * sphi1 * sphi2)/(es1 * es2)
           +_e2m * DDatanhee(sphi1, sphi2) ) / _qZ ) / den;
@@ -208,7 +209,8 @@ namespace GeographicLib {
         // v(tphi0) = (scbet0^2 * sphi0) - s * (1/qZ + scbet0^2 * sphi0 * sxi0)
         //          = 0
         // Alt:
-        // (scbet0^2 * sphi0) / (1/qZ - scbet0^2 * sphi0 * (1-sxi0)) = s / (1-s)
+        // (scbet0^2 * sphi0) / (1/qZ - scbet0^2 * sphi0 * (1-sxi0))
+        //          = s / (1-s)
         // w(tphi0) = (1-s) * (scbet0^2 * sphi0)
         //             - s  * (1/qZ - scbet0^2 * sphi0 * (1-sxi0))
         //          = (1-s) * (scbet0^2 * sphi0)
@@ -382,8 +384,7 @@ namespace GeographicLib {
   }
 
   void AlbersEqualArea::Forward(real lon0, real lat, real lon,
-                                real& x, real& y, real& gamma, real& k)
-    const {
+                                real& x, real& y, real& gamma, real& k) const {
     lon = Math::AngDiff(lon0, lon);
     lat *= _sign;
     real sphi, cphi;
@@ -396,38 +397,37 @@ namespace GeographicLib {
       drho = - _a * dq / (sqrt(_m02 - _n0 * dq) + _nrho0 / _a),
       theta = _k2 * _n0 * lam, stheta = sin(theta), ctheta = cos(theta),
       t = _nrho0 + _n0 * drho;
-    x = t * (_n0 ? stheta / _n0 : _k2 * lam) / _k0;
+    x = t * (_n0 != 0 ? stheta / _n0 : _k2 * lam) / _k0;
     y = (_nrho0 *
-         (_n0 ?
+         (_n0 != 0 ?
           (ctheta < 0 ? 1 - ctheta : Math::sq(stheta)/(1 + ctheta)) / _n0 :
           0)
          - drho * ctheta) / _k0;
-    k = _k0 * (t ? t * hyp(_fm * tphi) / _a : 1);
+    k = _k0 * (t != 0 ? t * hyp(_fm * tphi) / _a : 1);
     y *= _sign;
     gamma = _sign * theta / Math::degree();
   }
 
   void AlbersEqualArea::Reverse(real lon0, real x, real y,
                                 real& lat, real& lon,
-                                real& gamma, real& k)
-    const {
+                                real& gamma, real& k) const {
     y *= _sign;
     real
       nx = _k0 * _n0 * x, ny = _k0 * _n0 * y, y1 =  _nrho0 - ny,
       den = Math::hypot(nx, y1) + _nrho0, // 0 implies origin with polar aspect
-      drho = den ? (_k0*x*nx - 2*_k0*y*_nrho0 + _k0*y*ny) / den : 0,
+      drho = den != 0 ? (_k0*x*nx - 2*_k0*y*_nrho0 + _k0*y*ny) / den : 0,
       // dsxia = scxi0 * dsxi
       dsxia = - _scxi0 * (2 * _nrho0 + _n0 * drho) * drho /
               (Math::sq(_a) * _qZ),
       txi = (_txi0 + dsxia) / sqrt(max(1 - dsxia * (2*_txi0 + dsxia), epsx2_)),
       tphi = tphif(txi),
       theta = atan2(nx, y1),
-      lam = _n0 ? theta / (_k2 * _n0) : x / (y1 * _k0);
+      lam = _n0 != 0 ? theta / (_k2 * _n0) : x / (y1 * _k0);
     gamma = _sign * theta / Math::degree();
     lat = Math::atand(_sign * tphi);
     lon = lam / Math::degree();
     lon = Math::AngNormalize(lon + Math::AngNormalize(lon0));
-    k = _k0 * (den ? (_nrho0 + _n0 * drho) * hyp(_fm * tphi) / _a : 1);
+    k = _k0 * (den != 0 ? (_nrho0 + _n0 * drho) * hyp(_fm * tphi) / _a : 1);
   }
 
   void AlbersEqualArea::SetScale(real lat, real k) {
diff --git a/src/AzimuthalEquidistant.cpp b/src/AzimuthalEquidistant.cpp
index 939f71b..48ff881 100644
--- a/src/AzimuthalEquidistant.cpp
+++ b/src/AzimuthalEquidistant.cpp
@@ -18,8 +18,8 @@ namespace GeographicLib {
       , _earth(earth) {}
 
   void AzimuthalEquidistant::Forward(real lat0, real lon0, real lat, real lon,
-                                     real& x, real& y, real& azi, real& rk)
-    const {
+                                     real& x, real& y,
+                                     real& azi, real& rk) const {
     real sig, s, azi0, m;
     sig = _earth.Inverse(lat0, lon0, lat, lon, s, azi0, azi, m);
     Math::sincosd(azi0, x, y);
@@ -28,8 +28,8 @@ namespace GeographicLib {
   }
 
   void AzimuthalEquidistant::Reverse(real lat0, real lon0, real x, real y,
-                                     real& lat, real& lon, real& azi, real& rk)
-    const {
+                                     real& lat, real& lon,
+                                     real& azi, real& rk) const {
     real
       azi0 = Math::atan2d(x, y),
       s = Math::hypot(x, y);
diff --git a/src/CircularEngine.cpp b/src/CircularEngine.cpp
index 5236089..811b650 100644
--- a/src/CircularEngine.cpp
+++ b/src/CircularEngine.cpp
@@ -14,10 +14,10 @@ namespace GeographicLib {
   using namespace std;
 
   Math::real CircularEngine::Value(bool gradp, real sl, real cl,
-                                   real& gradx, real& grady, real& gradz)
-    const {
+                                   real& gradx, real& grady, real& gradz) const
+  {
     gradp = _gradp && gradp;
-    const vector<real>& root_( SphericalEngine::root_ );
+    const vector<real>& root( SphericalEngine::sqrttable() );
 
     // Initialize outer sum
     real vc  = 0, vc2  = 0, vs  = 0, vs2  = 0;   // v [N + 1], v [N + 2]
@@ -33,14 +33,14 @@ namespace GeographicLib {
         real v, A, B;           // alpha[m], beta[m + 1]
         switch (_norm) {
         case FULL:
-          v = root_[2] * root_[2 * m + 3] / root_[m + 1];
+          v = root[2] * root[2 * m + 3] / root[m + 1];
           A = cl * v * _uq;
-          B = - v * root_[2 * m + 5] / (root_[8] * root_[m + 2]) * _uq2;
+          B = - v * root[2 * m + 5] / (root[8] * root[m + 2]) * _uq2;
           break;
         case SCHMIDT:
-          v = root_[2] * root_[2 * m + 1] / root_[m + 1];
+          v = root[2] * root[2 * m + 1] / root[m + 1];
           A = cl * v * _uq;
-          B = - v * root_[2 * m + 3] / (root_[8] * root_[m + 2]) * _uq2;
+          B = - v * root[2 * m + 3] / (root[8] * root[m + 2]) * _uq2;
           break;
         default:
           A = B = 0;
@@ -59,12 +59,12 @@ namespace GeographicLib {
         real A, B, qs;
         switch (_norm) {
         case FULL:
-          A = root_[3] * _uq;       // F[1]/(q*cl) or F[1]/(q*sl)
-          B = - root_[15]/2 * _uq2; // beta[1]/q
+          A = root[3] * _uq;       // F[1]/(q*cl) or F[1]/(q*sl)
+          B = - root[15]/2 * _uq2; // beta[1]/q
           break;
         case SCHMIDT:
           A = _uq;
-          B = - root_[3]/2 * _uq2;
+          B = - root[3]/2 * _uq2;
           break;
         default:
           A = B = 0;
diff --git a/src/DMS.cpp b/src/DMS.cpp
index 077ee71..0722085 100644
--- a/src/DMS.cpp
+++ b/src/DMS.cpp
@@ -2,7 +2,7 @@
  * \file DMS.cpp
  * \brief Implementation for GeographicLib::DMS class
  *
- * Copyright (c) Charles Karney (2008-2015) <charles at karney.com> and licensed
+ * Copyright (c) Charles Karney (2008-2017) <charles at karney.com> and licensed
  * under the MIT/X11 License.  For more information, see
  * https://geographiclib.sourceforge.io/
  **********************************************************************/
@@ -19,11 +19,11 @@ namespace GeographicLib {
 
   using namespace std;
 
-  const string DMS::hemispheres_ = "SNWE";
-  const string DMS::signs_ = "-+";
-  const string DMS::digits_ = "0123456789";
-  const string DMS::dmsindicators_ = "D'\":";
-  const string DMS::components_[] = {"degrees", "minutes", "seconds"};
+  const char* const DMS::hemispheres_ = "SNWE";
+  const char* const DMS::signs_ = "-+";
+  const char* const DMS::digits_ = "0123456789";
+  const char* const DMS::dmsindicators_ = "D'\":";
+  const char* const DMS::components_[] = {"degrees", "minutes", "seconds"};
 
   Math::real DMS::Decode(const std::string& dms, flag& ind) {
     string dmsa = dms;
@@ -157,17 +157,17 @@ namespace GeographicLib {
             k = npiece;
           }
           if (unsigned(k) == npiece - 1) {
-            errormsg = "Repeated " + components_[k] +
+            errormsg = "Repeated " + string(components_[k]) +
               " component in " + dmsa.substr(beg, end - beg);
             break;
           } else if (unsigned(k) < npiece) {
-            errormsg = components_[k] + " component follows "
-              + components_[npiece - 1] + " component in "
+            errormsg = string(components_[k]) + " component follows "
+              + string(components_[npiece - 1]) + " component in "
               + dmsa.substr(beg, end - beg);
             break;
           }
           if (ncurrent == 0) {
-            errormsg = "Missing numbers in " + components_[k] +
+            errormsg = "Missing numbers in " + string(components_[k]) +
               " component of " + dmsa.substr(beg, end - beg);
             break;
           }
@@ -236,8 +236,10 @@ namespace GeographicLib {
       // Assume check on range of result is made by calling routine (which
       // might be able to offer a better diagnostic).
       return real(sign) *
-        ( fpieces[2] ? (60*(60*fpieces[0] + fpieces[1]) + fpieces[2]) / 3600 :
-          ( fpieces[1] ? (60*fpieces[0] + fpieces[1]) / 60 : fpieces[0] ) );
+        ( fpieces[2] != 0 ?
+          (60*(60*fpieces[0] + fpieces[1]) + fpieces[2]) / 3600 :
+          ( fpieces[1] != 0 ?
+            (60*fpieces[0] + fpieces[1]) / 60 : fpieces[0] ) );
     } while (false);
     real val = Utility::nummatch<real>(dmsa);
     if (val == 0)
diff --git a/src/Ellipsoid.cpp b/src/Ellipsoid.cpp
index e71c28b..9984145 100644
--- a/src/Ellipsoid.cpp
+++ b/src/Ellipsoid.cpp
@@ -114,8 +114,7 @@ namespace GeographicLib {
     return _a / sqrt(v);
   }
 
-  Math::real Ellipsoid::NormalCurvatureRadius(real phi, real azi)
-    const {
+  Math::real Ellipsoid::NormalCurvatureRadius(real phi, real azi) const {
     real calp, salp,
       v = 1 - _e2 * Math::sq(Math::sind(Math::LatFix(phi)));
     Math::sincosd(azi, salp, calp);
diff --git a/src/EllipticFunction.cpp b/src/EllipticFunction.cpp
index 9047616..0c14a02 100644
--- a/src/EllipticFunction.cpp
+++ b/src/EllipticFunction.cpp
@@ -2,7 +2,7 @@
  * \file EllipticFunction.cpp
  * \brief Implementation for GeographicLib::EllipticFunction class
  *
- * Copyright (c) Charles Karney (2008-2016) <charles at karney.com> and licensed
+ * Copyright (c) Charles Karney (2008-2017) <charles at karney.com> and licensed
  * under the MIT/X11 License.  For more information, see
  * https://geographiclib.sourceforge.io/
  **********************************************************************/
@@ -28,7 +28,7 @@ namespace GeographicLib {
 
   Math::real EllipticFunction::RF(real x, real y, real z) {
     // Carlson, eqs 2.2 - 2.7
-    real tolRF =
+    static const real tolRF =
       pow(3 * numeric_limits<real>::epsilon() * real(0.01), 1/real(8));
     real
       A0 = (x + y + z)/3,
@@ -65,7 +65,7 @@ namespace GeographicLib {
 
   Math::real EllipticFunction::RF(real x, real y) {
     // Carlson, eqs 2.36 - 2.38
-    real tolRG0 =
+    static const real tolRG0 =
       real(2.7) * sqrt((numeric_limits<real>::epsilon() * real(0.01)));
     real xn = sqrt(x), yn = sqrt(y);
     if (xn < yn) swap(xn, yn);
@@ -103,7 +103,7 @@ namespace GeographicLib {
 
   Math::real EllipticFunction::RG(real x, real y) {
     // Carlson, eqs 2.36 - 2.39
-    real tolRG0 =
+    static const real tolRG0 =
       real(2.7) * sqrt((numeric_limits<real>::epsilon() * real(0.01)));
     real
       x0 = sqrt(max(x, y)),
@@ -126,8 +126,9 @@ namespace GeographicLib {
 
   Math::real EllipticFunction::RJ(real x, real y, real z, real p) {
     // Carlson, eqs 2.17 - 2.25
-    real tolRD = pow(real(0.2) * (numeric_limits<real>::epsilon() * real(0.01)),
-                     1/real(8));
+    static const real
+      tolRD = pow(real(0.2) * (numeric_limits<real>::epsilon() * real(0.01)),
+                  1/real(8));
     real
       A0 = (x + y + z + 2*p)/5,
       An = A0,
@@ -178,8 +179,9 @@ namespace GeographicLib {
 
   Math::real EllipticFunction::RD(real x, real y, real z) {
     // Carlson, eqs 2.28 - 2.34
-    real tolRD = pow(real(0.2) * (numeric_limits<real>::epsilon() * real(0.01)),
-                     1/real(8));
+    static const real
+      tolRD = pow(real(0.2) * (numeric_limits<real>::epsilon() * real(0.01)),
+                  1/real(8));
     real
       A0 = (x + y + 3*z)/5,
       An = A0,
@@ -257,31 +259,32 @@ namespace GeographicLib {
     // Pi(alpha2, 1) = inf
     // H(1, k) = K(k)
     // G(alpha2, 1) = H(alpha2, 1) = RC(1, alphap2)
-    if (_k2) {
+    if (_k2 != 0) {
       // Complete elliptic integral K(k), Carlson eq. 4.1
       // http://dlmf.nist.gov/19.25.E1
-      _Kc = _kp2 ? RF(_kp2, 1) : Math::infinity();
+      _Kc = _kp2 != 0 ? RF(_kp2, 1) : Math::infinity();
       // Complete elliptic integral E(k), Carlson eq. 4.2
       // http://dlmf.nist.gov/19.25.E1
-      _Ec = _kp2 ? 2 * RG(_kp2, 1) : 1;
+      _Ec = _kp2 != 0 ? 2 * RG(_kp2, 1) : 1;
       // D(k) = (K(k) - E(k))/k^2, Carlson eq.4.3
       // http://dlmf.nist.gov/19.25.E1
-      _Dc = _kp2 ? RD(0, _kp2, 1) / 3 : Math::infinity();
+      _Dc = _kp2 != 0 ? RD(0, _kp2, 1) / 3 : Math::infinity();
     } else {
       _Kc = _Ec = Math::pi()/2; _Dc = _Kc/2;
     }
-    if (_alpha2) {
+    if (_alpha2 != 0) {
       // http://dlmf.nist.gov/19.25.E2
       real rj = (_kp2 != 0 && _alphap2 != 0) ? RJ(0, _kp2, 1, _alphap2) :
         Math::infinity(),
         // Only use rc if _kp2 = 0.
-        rc = _kp2 ? 0 : (_alphap2 ? RC(1, _alphap2) : Math::infinity());
+        rc = _kp2 != 0 ? 0 :
+        (_alphap2 != 0 ? RC(1, _alphap2) : Math::infinity());
       // Pi(alpha^2, k)
       _Pic = _kp2 != 0 ? _Kc + _alpha2 * rj / 3 : Math::infinity();
       // G(alpha^2, k)
-      _Gc = _kp2 ? _Kc + (_alpha2 - _k2) * rj / 3 :  rc;
+      _Gc = _kp2 != 0 ? _Kc + (_alpha2 - _k2) * rj / 3 :  rc;
       // H(alpha^2, k)
-      _Hc = _kp2 ? _Kc - (_alphap2 ? _alphap2 * rj : 0) / 3 : rc;
+      _Hc = _kp2 != 0 ? _Kc - (_alphap2 != 0 ? _alphap2 * rj : 0) / 3 : rc;
     } else {
       _Pic = _Kc; _Gc = _Ec;
       // Hc = Kc - Dc but this involves large cancellations if k2 is close to
@@ -297,7 +300,7 @@ namespace GeographicLib {
       //   RF(x, 1) - RD(0, x, 1)/3 = x * RD(0, 1, x)/3 for x > 0
       // For k2 = 1 and alpha2 = 0, we have
       //   Hc = int(cos(phi),...) = 1
-      _Hc = _kp2 ? _kp2 * RD(0, 1, _kp2) / 3 : 1;
+      _Hc = _kp2 != 0 ? _kp2 * RD(0, 1, _kp2) / 3 : 1;
     }
   }
 
@@ -309,10 +312,10 @@ namespace GeographicLib {
    *   Numericshe Mathematik 7, 78-90 (1965)
    */
 
-  void EllipticFunction::sncndn(real x, real& sn, real& cn, real& dn)
-    const {
+  void EllipticFunction::sncndn(real x, real& sn, real& cn, real& dn) const {
     // Bulirsch's sncndn routine, p 89.
-    real tolJAC = sqrt(numeric_limits<real>::epsilon() * real(0.01));
+    static const real tolJAC =
+      sqrt(numeric_limits<real>::epsilon() * real(0.01));
     if (_kp2 != 0) {
       real mc = _kp2, d = 0;
       if (_kp2 < 0) {
@@ -368,7 +371,7 @@ namespace GeographicLib {
     // Carlson, eq. 4.5 and
     // http://dlmf.nist.gov/19.25.E5
     real cn2 = cn*cn, dn2 = dn*dn,
-      fi = cn2 ? abs(sn) * RF(cn2, dn2, 1) : K();
+      fi = cn2 != 0 ? abs(sn) * RF(cn2, dn2, 1) : K();
     // Enforce usual trig-like symmetries
     if (cn < 0)
       fi = 2 * K() - fi;
@@ -378,18 +381,19 @@ namespace GeographicLib {
   Math::real EllipticFunction::E(real sn, real cn, real dn) const {
     real
       cn2 = cn*cn, dn2 = dn*dn, sn2 = sn*sn,
-      ei = cn2 ? abs(sn) *( _k2 <= 0 ?
-                            // Carlson, eq. 4.6 and
-                            // http://dlmf.nist.gov/19.25.E9
-                            RF(cn2, dn2, 1) - _k2 * sn2 * RD(cn2, dn2, 1) / 3 :
-                            ( _kp2 >= 0 ?
-                              // http://dlmf.nist.gov/19.25.E10
-                              _kp2 * RF(cn2, dn2, 1) +
-                              _k2 * _kp2 * sn2 * RD(cn2, 1, dn2) / 3 +
-                              _k2 * abs(cn) / dn :
-                              // http://dlmf.nist.gov/19.25.E11
-                              - _kp2 * sn2 * RD(dn2, 1, cn2) / 3 +
-                              dn / abs(cn) ) ) :
+      ei = cn2 != 0 ?
+      abs(sn) * ( _k2 <= 0 ?
+                  // Carlson, eq. 4.6 and
+                  // http://dlmf.nist.gov/19.25.E9
+                  RF(cn2, dn2, 1) - _k2 * sn2 * RD(cn2, dn2, 1) / 3 :
+                  ( _kp2 >= 0 ?
+                    // http://dlmf.nist.gov/19.25.E10
+                    _kp2 * RF(cn2, dn2, 1) +
+                    _k2 * _kp2 * sn2 * RD(cn2, 1, dn2) / 3 +
+                    _k2 * abs(cn) / dn :
+                    // http://dlmf.nist.gov/19.25.E11
+                    - _kp2 * sn2 * RD(dn2, 1, cn2) / 3 +
+                    dn / abs(cn) ) ) :
       E();
     // Enforce usual trig-like symmetries
     if (cn < 0)
@@ -402,7 +406,7 @@ namespace GeographicLib {
     // http://dlmf.nist.gov/19.25.E13
     real
       cn2 = cn*cn, dn2 = dn*dn, sn2 = sn*sn,
-      di = cn2 ? abs(sn) * sn2 * RD(cn2, dn2, 1) / 3 : D();
+      di = cn2 != 0 ? abs(sn) * sn2 * RD(cn2, dn2, 1) / 3 : D();
     // Enforce usual trig-like symmetries
     if (cn < 0)
       di = 2 * D() - di;
@@ -414,9 +418,9 @@ namespace GeographicLib {
     // http://dlmf.nist.gov/19.25.E14
     real
       cn2 = cn*cn, dn2 = dn*dn, sn2 = sn*sn,
-      pii = cn2 ? abs(sn) * (RF(cn2, dn2, 1) +
-                             _alpha2 * sn2 *
-                             RJ(cn2, dn2, 1, cn2 + _alphap2 * sn2) / 3) :
+      pii = cn2 != 0 ? abs(sn) * (RF(cn2, dn2, 1) +
+                                  _alpha2 * sn2 *
+                                  RJ(cn2, dn2, 1, cn2 + _alphap2 * sn2) / 3) :
       Pi();
     // Enforce usual trig-like symmetries
     if (cn < 0)
@@ -427,9 +431,9 @@ namespace GeographicLib {
   Math::real EllipticFunction::G(real sn, real cn, real dn) const {
     real
       cn2 = cn*cn, dn2 = dn*dn, sn2 = sn*sn,
-      gi = cn2 ? abs(sn) * (RF(cn2, dn2, 1) +
-                            (_alpha2 - _k2) * sn2 *
-                            RJ(cn2, dn2, 1, cn2 + _alphap2 * sn2) / 3) :
+      gi = cn2 != 0 ? abs(sn) * (RF(cn2, dn2, 1) +
+                                 (_alpha2 - _k2) * sn2 *
+                                 RJ(cn2, dn2, 1, cn2 + _alphap2 * sn2) / 3) :
       G();
     // Enforce usual trig-like symmetries
     if (cn < 0)
@@ -441,9 +445,9 @@ namespace GeographicLib {
     real
       cn2 = cn*cn, dn2 = dn*dn, sn2 = sn*sn,
       // WARNING: large cancellation if k2 = 1, alpha2 = 0, and phi near pi/2
-      hi = cn2 ? abs(sn) * (RF(cn2, dn2, 1) -
-                            _alphap2 * sn2 *
-                            RJ(cn2, dn2, 1, cn2 + _alphap2 * sn2) / 3) :
+      hi = cn2 != 0 ? abs(sn) * (RF(cn2, dn2, 1) -
+                                 _alphap2 * sn2 *
+                                 RJ(cn2, dn2, 1, cn2 + _alphap2 * sn2) / 3) :
       H();
     // Enforce usual trig-like symmetries
     if (cn < 0)
@@ -532,7 +536,8 @@ namespace GeographicLib {
   }
 
   Math::real EllipticFunction::Einv(real x) const {
-    real tolJAC = sqrt(numeric_limits<real>::epsilon() * real(0.01));
+    static const real tolJAC =
+      sqrt(numeric_limits<real>::epsilon() * real(0.01));
     real n = floor(x / (2 * _Ec) + real(0.5));
     x -= 2 * _Ec * n;           // x now in [-ec, ec)
     // Linear approximation
diff --git a/src/GARS.cpp b/src/GARS.cpp
index 81b5333..e5e2ae8 100644
--- a/src/GARS.cpp
+++ b/src/GARS.cpp
@@ -2,8 +2,8 @@
  * \file GARS.cpp
  * \brief Implementation for GeographicLib::GARS class
  *
- * Copyright (c) Charles Karney (2015) <charles at karney.com> and licensed under
- * the MIT/X11 License.  For more information, see
+ * Copyright (c) Charles Karney (2015-2017) <charles at karney.com> and licensed
+ * under the MIT/X11 License.  For more information, see
  * https://geographiclib.sourceforge.io/
  **********************************************************************/
 
@@ -14,8 +14,8 @@ namespace GeographicLib {
 
   using namespace std;
 
-  const string GARS::digits_ = "0123456789";
-  const string GARS::letters_ = "ABCDEFGHJKLMNPQRSTUVWXYZ";
+  const char* const GARS::digits_ = "0123456789";
+  const char* const GARS::letters_ = "ABCDEFGHJKLMNPQRSTUVWXYZ";
 
   void GARS::Forward(real lat, real lon, int prec, std::string& gars) {
     if (abs(lat) > 90)
diff --git a/src/GeoCoords.cpp b/src/GeoCoords.cpp
index 7faa09e..09ef4a5 100644
--- a/src/GeoCoords.cpp
+++ b/src/GeoCoords.cpp
@@ -108,7 +108,8 @@ namespace GeographicLib {
                                bool abbrev, std::string& utm) {
     ostringstream os;
     prec = max(-5, min(9 + Math::extra_digits(), prec));
-    real scale = prec < 0 ? pow(real(10), -prec) : real(1);
+    // Need extra real because, since C++11, pow(float, int) returns double
+    real scale = prec < 0 ? real(pow(real(10), -prec)) : real(1);
     os << UTMUPS::EncodeZone(zone, northp, abbrev) << fixed << setfill('0');
     if (Math::isfinite(easting)) {
       os << " " << Utility::str(easting / scale, max(0, prec));
@@ -131,8 +132,8 @@ namespace GeographicLib {
     return utm;
   }
 
-  string GeoCoords::UTMUPSRepresentation(bool northp, int prec, bool abbrev)
-    const {
+  string GeoCoords::UTMUPSRepresentation(bool northp, int prec,
+                                         bool abbrev) const {
     real e, n;
     int z;
     UTMUPS::Transfer(_zone, _northp, _easting, _northing,
@@ -149,8 +150,8 @@ namespace GeographicLib {
     return utm;
   }
 
-  string GeoCoords::AltUTMUPSRepresentation(bool northp, int prec, bool abbrev)
-    const {
+  string GeoCoords::AltUTMUPSRepresentation(bool northp, int prec,
+                                            bool abbrev) const {
     real e, n;
     int z;
     UTMUPS::Transfer(_alt_zone, _northp, _alt_easting, _alt_northing,
diff --git a/src/Geocentric.cpp b/src/Geocentric.cpp
index cf37b6a..140c7d9 100644
--- a/src/Geocentric.cpp
+++ b/src/Geocentric.cpp
@@ -2,7 +2,7 @@
  * \file Geocentric.cpp
  * \brief Implementation for GeographicLib::Geocentric class
  *
- * Copyright (c) Charles Karney (2008-2016) <charles at karney.com> and licensed
+ * Copyright (c) Charles Karney (2008-2017) <charles at karney.com> and licensed
  * under the MIT/X11 License.  For more information, see
  * https://geographiclib.sourceforge.io/
  **********************************************************************/
@@ -53,8 +53,8 @@ namespace GeographicLib {
                               real M[dim2_]) const {
     real
       R = Math::hypot(X, Y),
-      slam = R ? Y / R : 0,
-      clam = R ? X / R : 1;
+      slam = R != 0 ? Y / R : 0,
+      clam = R != 0 ? X / R : 1;
     h = Math::hypot(R, Z);      // Distance to center of earth
     real sphi, cphi;
     if (h > _maxrad) {
@@ -65,8 +65,8 @@ namespace GeographicLib {
       //
       // Treat the case X, Y finite, but R overflows to +inf by scaling by 2.
       R = Math::hypot(X/2, Y/2);
-      slam = R ? (Y/2) / R : 0;
-      clam = R ? (X/2) / R : 1;
+      slam = R != 0 ? (Y/2) / R : 0;
+      clam = R != 0 ? (X/2) / R : 1;
       real H = Math::hypot(Z/2, R);
       sphi = (Z/2) / H;
       cphi = R / H;
@@ -104,7 +104,7 @@ namespace GeographicLib {
           // N.B. cbrt always returns the real root.  cbrt(-8) = -2.
           real T = Math::cbrt(T3); // T = r * t
           // T can be zero; but then r2 / T -> 0.
-          u += T + (T ? r2 / T : 0);
+          u += T + (T != 0 ? r2 / T : 0);
         } else {
           // T is complex, but the way u is defined the result is real.
           real ang = atan2(sqrt(-disc), -(S + r3));
diff --git a/src/Geodesic.cpp b/src/Geodesic.cpp
index 8656baa..a89d076 100644
--- a/src/Geodesic.cpp
+++ b/src/Geodesic.cpp
@@ -74,7 +74,7 @@ namespace GeographicLib {
       // sig12 = etol2.  Here 0.1 is a safety factor (error decreased by 100)
       // and max(0.001, abs(f)) stops etol2 getting too large in the nearly
       // spherical case.
-    , _etol2(0.1 * tol2_ /
+    , _etol2(real(0.1) * tol2_ /
              sqrt( max(real(0.001), abs(_f)) * min(real(1), 1 - _f/2) / 2 ))
   {
     if (!(Math::isfinite(_a) && _a > 0))
@@ -115,8 +115,8 @@ namespace GeographicLib {
       : cosx * (y0 - y1);       // cos(x) * (y0 - y1)
   }
 
-  GeodesicLine Geodesic::Line(real lat1, real lon1, real azi1, unsigned caps)
-    const {
+  GeodesicLine Geodesic::Line(real lat1, real lon1, real azi1,
+                              unsigned caps) const {
     return GeodesicLine(*this, lat1, lon1, azi1, caps);
   }
 
@@ -160,8 +160,8 @@ namespace GeographicLib {
                                   unsigned outmask, real& s12,
                                   real& salp1, real& calp1,
                                   real& salp2, real& calp2,
-                                  real& m12, real& M12, real& M21, real& S12)
-    const {
+                                  real& m12, real& M12, real& M21,
+                                  real& S12) const {
     // Compute longitude difference (AngDiff does this carefully).  Result is
     // in [-180, 180] but -180 is only for west-going geodesics.  180 is for
     // east-going and meridional geodesics.
@@ -493,8 +493,8 @@ namespace GeographicLib {
   Math::real Geodesic::GenInverse(real lat1, real lon1, real lat2, real lon2,
                                   unsigned outmask,
                                   real& s12, real& azi1, real& azi2,
-                                  real& m12, real& M12, real& M21, real& S12)
-    const {
+                                  real& m12, real& M12, real& M21,
+                                  real& S12) const {
     outmask &= OUT_MASK;
     real salp1, calp1, salp2, calp2,
       a12 =  GenInverse(lat1, lon1, lat2, lon2,
@@ -507,7 +507,8 @@ namespace GeographicLib {
     return a12;
   }
 
-  GeodesicLine Geodesic::InverseLine(real lat1, real lon1, real lat2, real lon2,
+  GeodesicLine Geodesic::InverseLine(real lat1, real lon1,
+                                     real lat2, real lon2,
                                      unsigned caps) const {
     real t, salp1, calp1, salp2, calp2,
       a12 = GenInverse(lat1, lon1, lat2, lon2,
@@ -517,14 +518,16 @@ namespace GeographicLib {
       azi1 = Math::atan2d(salp1, calp1);
     // Ensure that a12 can be converted to a distance
     if (caps & (OUT_MASK & DISTANCE_IN)) caps |= DISTANCE;
-    return GeodesicLine(*this, lat1, lon1, azi1, salp1, calp1, caps, true, a12);
+    return
+      GeodesicLine(*this, lat1, lon1, azi1, salp1, calp1, caps, true, a12);
   }
 
   void Geodesic::Lengths(real eps, real sig12,
                          real ssig1, real csig1, real dn1,
                          real ssig2, real csig2, real dn2,
                          real cbet1, real cbet2, unsigned outmask,
-                         real& s12b, real& m12b, real& m0, real& M12, real& M21,
+                         real& s12b, real& m12b, real& m0,
+                         real& M12, real& M21,
                          // Scratch area of the right size
                          real Ca[]) const {
     // Return m12b = (reduced length)/_b; also calculate s12b = distance/_b,
@@ -609,7 +612,7 @@ namespace GeographicLib {
         // N.B. cbrt always returns the real root.  cbrt(-8) = -2.
         real T = Math::cbrt(T3); // T = r * t
         // T can be zero; but then r2 / T -> 0.
-        u += T + (T ? r2 / T : 0);
+        u += T + (T != 0 ? r2 / T : 0);
       } else {
         // T is complex, but the way u is defined the result is real.
         real ang = atan2(sqrt(-disc), -(S + r3));
@@ -735,7 +738,8 @@ namespace GeographicLib {
         // Inverse.
         Lengths(_n, Math::pi() + bet12a,
                 sbet1, -cbet1, dn1, sbet2, cbet2, dn2,
-                cbet1, cbet2, REDUCEDLENGTH, dummy, m12b, m0, dummy, dummy, Ca);
+                cbet1, cbet2,
+                REDUCEDLENGTH, dummy, m12b, m0, dummy, dummy, Ca);
         x = -1 + m12b / (cbet1 * cbet2 * m0 * Math::pi());
         betscale = x < -real(0.01) ? sbet12a / x :
           -_f * Math::sq(cbet1) * Math::pi();
diff --git a/src/GeodesicExact.cpp b/src/GeodesicExact.cpp
index e9bfbf1..19b764d 100644
--- a/src/GeodesicExact.cpp
+++ b/src/GeodesicExact.cpp
@@ -80,7 +80,7 @@ namespace GeographicLib {
       // sig12 = etol2.  Here 0.1 is a safety factor (error decreased by 100)
       // and max(0.001, abs(f)) stops etol2 getting too large in the nearly
       // spherical case.
-    , _etol2(0.1 * tol2_ /
+    , _etol2(real(0.1) * tol2_ /
              sqrt( max(real(0.001), abs(_f)) * min(real(1), 1 - _f/2) / 2 ))
   {
     if (!(Math::isfinite(_a) && _a > 0))
@@ -350,7 +350,7 @@ namespace GeographicLib {
         for (bool tripn = false, tripb = false;
              numit < maxit2_ || GEOGRAPHICLIB_PANIC;
              ++numit) {
-          // 1/4 meridan = 10e6 m and random input.  max err is estimated max
+          // 1/4 meridian = 10e6 m and random input.  max err is estimated max
           // error in nm (checking solution of inverse problem by direct
           // solution).  iter is mean and sd of number of iterations
           //
@@ -522,8 +522,7 @@ namespace GeographicLib {
                                        unsigned outmask,
                                        real& s12, real& azi1, real& azi2,
                                        real& m12, real& M12, real& M21,
-                                       real& S12)
-    const {
+                                       real& S12) const {
     outmask &= OUT_MASK;
     real salp1, calp1, salp2, calp2,
       a12 =  GenInverse(lat1, lon1, lat2, lon2,
@@ -623,7 +622,7 @@ namespace GeographicLib {
         // N.B. cbrt always returns the real root.  cbrt(-8) = -2.
         real T = Math::cbrt(T3); // T = r * t
         // T can be zero; but then r2 / T -> 0.
-        u += T + (T ? r2 / T : 0);
+        u += T + (T != 0 ? r2 / T : 0);
       } else {
         // T is complex, but the way u is defined the result is real.
         real ang = atan2(sqrt(-disc), -(S + r3));
@@ -655,8 +654,7 @@ namespace GeographicLib {
                                          // Only updated if return val >= 0
                                          real& salp2, real& calp2,
                                          // Only updated for short lines
-                                         real& dnm)
-    const {
+                                         real& dnm) const {
     // Return a starting point for Newton's method in salp1 and calp1 (function
     // value is -1).  If Newton's method doesn't need to be used, return also
     // salp2 and calp2 and function value is sig12.
diff --git a/src/GeodesicExactC4.cpp b/src/GeodesicExactC4.cpp
index 702438e..77189ea 100644
--- a/src/GeodesicExactC4.cpp
+++ b/src/GeodesicExactC4.cpp
@@ -2,7 +2,7 @@
  * \file GeodesicExactC4.cpp
  * \brief Implementation for GeographicLib::GeodesicExact::rawC4coeff
  *
- * Copyright (c) Charles Karney (2014-2016) <charles at karney.com> and licensed
+ * Copyright (c) Charles Karney (2014-2017) <charles at karney.com> and licensed
  * under the MIT/X11 License.  For more information, see
  * https://geographiclib.sourceforge.io/
  *
@@ -18,67 +18,73 @@ namespace GeographicLib {
 
   using namespace std;
 
-  // If the coefficient is greater that 2^63 - 1, express it as a pair [a, b]
-  // which is combined with a*2^52 + b.  The largest coefficient is
-  // 831281402884796906843926125 = 0x2af9eaf25d149c52a73ee6d =
-  // 0x2af9eaf25d * 2^52 + 0x149c52a73ee6d which is less than 2^90.
-  // Both a and b are less that 2^52 and so are exactly representable by
-  // doubles; then the computation of the full double coefficient involves only
-  // a single rounding operation.
+  // If the coefficient is greater or equal to 2^63, express it as a pair [a,
+  // b] which is combined with a*2^52 + b.  The largest coefficient is
+  // 831281402884796906843926125 = 0x2af9eaf25d149c52a73ee6d
+  // = 184581550685 * 2^52 + 0x149c52a73ee6d which is less than 2^90.  Both a
+  // and b are less that 2^52 and so are exactly representable by doubles; then
+  // the computation of the full double coefficient involves only a single
+  // rounding operation.  (Actually integers up to and including 2^53 can be
+  // represented exactly as doubles.  Limiting b to 52 bits allows it to be
+  // represented in 13 digits in hex.)
+
+  // If the coefficient is less than 2^63, cast it to real if it isn't exactly
+  // representable as a float.  Thus 121722048 = 1901907*2^6 and 1901907 < 2^24
+  // so the cast is not needed; 21708121824 = 678378807*2^5 and 678378807 >=
+  // 2^24 so the cast is needed.
 
   void GeodesicExact::C4coeff() {
-    // Generated by Maxima on 2015-05-05 17:18:06-04:00
+    // Generated by Maxima on 2017-05-27 10:17:57-04:00
 #if GEOGRAPHICLIB_GEODESICEXACT_ORDER == 24
     static const real coeff[] = {
       // C4[0], coeff of eps^23, polynomial in n of order 0
-      real(2113LL),real(0x209510dLL),
+      2113,real(34165005),
       // C4[0], coeff of eps^22, polynomial in n of order 1
-      real(0x4f2fa0LL),real(0x13852eLL),real(0xcb8314033LL),
+      5189536,1279278,real(54629842995LL),
       // C4[0], coeff of eps^21, polynomial in n of order 2
-      real(0x1285360LL),-real(0x92a110LL),real(0x6d084fLL),
-      real(0x147638f7f9LL),
+      real(19420000),-9609488,7145551,real(87882790905LL),
       // C4[0], coeff of eps^20, polynomial in n of order 3
-      real(0x33fcdea140LL),-real(0x21fe753a80LL),real(0x10cd7f3dc0LL),
-      real(0x421366044LL),real(0x205dc0bcbd6d7LL),
+      real(223285780800LL),-real(146003016320LL),real(72167144896LL),
+      real(17737080900LL),real(0x205dc0bcbd6d7LL),
       // C4[0], coeff of eps^19, polynomial in n of order 4
       real(0x4114538e4c0LL),-real(0x2f55bac3db0LL),real(0x1ee26e63c60LL),
-      -real(0xf3f108c690LL),real(0xb50b862ee7LL),real(0x19244124e56e27LL),
+      -real(0xf3f108c690LL),real(777582423783LL),real(0x19244124e56e27LL),
       // C4[0], coeff of eps^18, polynomial in n of order 5
       real(0x303f35e1bc93a0LL),-real(0x24e1f056b1d580LL),
       real(0x1ab9fe0d1d4d60LL),-real(0x1164c583e996c0LL),
       real(0x892da1e80cb20LL),real(0x2194519fdb596LL),
-      reale(3071LL,0xfdd7cc41833d5LL),
+      reale(3071,0xfdd7cc41833d5LL),
       // C4[0], coeff of eps^17, polynomial in n of order 6
       real(0x4aad22c875ed20LL),-real(0x3a4801a1c6bad0LL),
       real(0x2c487fb318d4c0LL),-real(0x1ff24d7cfd75b0LL),
       real(0x14ba39245f1460LL),-real(0xa32e190328e90LL),
-      real(0x78c93074dfcffLL),reale(3071LL,0xfdd7cc41833d5LL),
+      real(0x78c93074dfcffLL),reale(3071,0xfdd7cc41833d5LL),
       // C4[0], coeff of eps^16, polynomial in n of order 7
       real(0x33d84b92096e100LL),-real(0x286d35d824ffe00LL),
       real(0x1f3d33e2e951300LL),-real(0x178f58435181400LL),
       real(0x10e7992a3756500LL),-real(0xaed7fa8609aa00LL),
       real(0x55d8ac87b09700LL),real(0x14e51e43945a10LL),
-      reale(21503LL,0xf0e695ca96ad3LL),
+      reale(21503,0xf0e695ca96ad3LL),
       // C4[0], coeff of eps^15, polynomial in n of order 8
       real(0x577cdb6aaee0d80LL),-real(0x4283c1e96325470LL),
       real(0x32feef20b794020LL),-real(0x26ea2e388de1a50LL),
       real(0x1d13f6131e5d6c0LL),-real(0x14b9aa66e270230LL),
       real(0xd5657196ac0560LL),-real(0x6880b0118a9810LL),
-      real(0x4d0f1755168ee7LL),reale(21503LL,0xf0e695ca96ad3LL),
+      real(0x4d0f1755168ee7LL),reale(21503,0xf0e695ca96ad3LL),
       // C4[0], coeff of eps^14, polynomial in n of order 9
       real(0xa82410caed14920LL),-real(0x774e0539d2de300LL),
       real(0x57ddc01c62bc8e0LL),-real(0x41de50dfff43e40LL),
       real(0x31742450a1bdca0LL),-real(0x248524531975180LL),
       real(0x19d013c6e35ec60LL),-real(0x1084c003a0434c0LL),
       real(0x8103758ad86020LL),real(0x1f2409edf5e286LL),
-      reale(21503LL,0xf0e695ca96ad3LL),
+      reale(21503,0xf0e695ca96ad3LL),
       // C4[0], coeff of eps^13, polynomial in n of order 10
       real(0x1c6d2d6120015ca0LL),-real(0x104cedef383403b0LL),
       real(0xab9dd58c3e3d880LL),-real(0x78a4e83e5604750LL),
       real(0x57aa7cf5406e460LL),-real(0x4067a93ceeb2cf0LL),
       real(0x2ed62190d975c40LL),-real(0x20c076adcb21890LL),
       real(0x14cfa9cb9e01c20LL),-real(0xa1e25734956e30LL),
-      real(0x76afbfe4ae6c4dLL),reale(21503LL,0xf0e695ca96ad3LL),
+      real(0x76afbfe4ae6c4dLL),reale(21503,0xf0e695ca96ad3LL),
       // C4[0], coeff of eps^12, polynomial in n of order 11
       real(0x500e39e18e75c40LL),-real(0xb866fe4aaa63680LL),
       real(0x4337db32e526ac0LL),-real(0x264cce8c21af200LL),
@@ -86,7 +92,7 @@ namespace GeographicLib {
       real(0xc5be96cd3dcfc0LL),-real(0x8cdca1395db900LL),
       real(0x611fe1a7e00640LL),-real(0x3d26e46827e480LL),
       real(0x1d93970a8fd4c0LL),real(0x70bf87cc17354LL),
-      reale(3071LL,0xfdd7cc41833d5LL),
+      reale(3071,0xfdd7cc41833d5LL),
       // C4[0], coeff of eps^11, polynomial in n of order 12
       -real(0x158a522ca96a9f40LL),real(0x14d4e49882e048f0LL),
       real(0x51a6258bc6026a0LL),-real(0xc07af3677bdc6b0LL),
@@ -94,7 +100,7 @@ namespace GeographicLib {
       real(0x195f928e5402a60LL),-real(0x114aa7eeb31a3f0LL),
       real(0xbf706c784da040LL),-real(0x817ec7d97ab990LL),
       real(0x508b8ca80cde20LL),-real(0x26b120ea091930LL),
-      real(0x1c1ab3faf18ecdLL),reale(3071LL,0xfdd7cc41833d5LL),
+      real(0x1c1ab3faf18ecdLL),reale(3071,0xfdd7cc41833d5LL),
       // C4[0], coeff of eps^10, polynomial in n of order 13
       real(0x85cd94c7a43620LL),real(0x41534458719f180LL),
       -real(0x1688b497e3eabf20LL),real(0x15fa3ad6bcd8bd40LL),
@@ -103,46 +109,46 @@ namespace GeographicLib {
       real(0x199b6e19072f920LL),-real(0x10f769bc7a1af80LL),
       real(0xb2b30e0b2b83e0LL),-real(0x6d4c30bc0953c0LL),
       real(0x3405b9397b42a0LL),real(0xc1ffd0ada51beLL),
-      reale(3071LL,0xfdd7cc41833d5LL),
+      reale(3071,0xfdd7cc41833d5LL),
       // C4[0], coeff of eps^9, polynomial in n of order 14
       real(0x77c3b2fb788360LL),real(0x12370e8b6ebba50LL),
       real(0x3ce89570a2d35c0LL),real(0x1ddd463aa5801f30LL),
-      reale(-2653LL,0xf49e89f0f6020LL),reale(2613LL,0x24df88b461210LL),
+      -reale(2652,0xb61760f09fe0LL),reale(2613,0x24df88b461210LL),
       real(0x24dea39341926e80LL),-real(0x5ce704fae2f44110LL),
       real(0x20ecef343dc3cce0LL),-real(0x121947a4ab4bae30LL),
       real(0xb2a76f84c78e740LL),-real(0x70dd3a5c9a20950LL),
       real(0x43604f2667d29a0LL),-real(0x1fa7f2abdd82670LL),
-      real(0x169d55eb03244c1LL),reale(21503LL,0xf0e695ca96ad3LL),
+      real(0x169d55eb03244c1LL),reale(21503,0xf0e695ca96ad3LL),
       // C4[0], coeff of eps^8, polynomial in n of order 15
       real(0x21331eec152c80LL),real(0x3c94fa87392d00LL),
       real(0x7bff534019c580LL),real(0x12eee208e5fe200LL),
       real(0x3f965ae4945ee80LL),real(0x1f56cb06e4e85700LL),
-      reale(-2803LL,0xffb9171e60780LL),reale(2796LL,0xadb20bd4ec00LL),
+      -reale(2802,0x46e8e19f880LL),reale(2796,0xadb20bd4ec00LL),
       real(0x251d0efe774e7080LL),-real(0x625b74d58e27ff00LL),
       real(0x224674d7e8ab8980LL),-real(0x1260f3bdc69c0a00LL),
       real(0xad7256a98d1b280LL),-real(0x63bd65ce944d500LL),
       real(0x2df89c0cd0d4b80LL),real(0xa46618fc50ff08LL),
-      reale(21503LL,0xf0e695ca96ad3LL),
+      reale(21503,0xf0e695ca96ad3LL),
       // C4[0], coeff of eps^7, polynomial in n of order 16
       real(0xcb641c2517300LL),real(0x1435342f6c1790LL),
       real(0x2223c168d902a0LL),real(0x3e90a70fac72b0LL),
       real(0x80a310c4f84640LL),real(0x13bcb7c20d40bd0LL),
       real(0x42a5540b0e391e0LL),real(0x210e40977bd376f0LL),
-      reale(-2981LL,0x6b26210e33980LL),reale(3022LL,0x503caf61c4810LL),
+      -reale(2980,0x94d9def1cc680LL),reale(3022,0x503caf61c4810LL),
       real(0x24d397da2b859120LL),-real(0x68d822cc2f04ecd0LL),
       real(0x23a043b28810ecc0LL),-real(0x125159fafe6e93b0LL),
       real(0x9e1bc8a31f5a060LL),-real(0x46aed7b45d01890LL),
-      real(0x30c71f0f146542fLL),reale(21503LL,0xf0e695ca96ad3LL),
+      real(0x30c71f0f146542fLL),reale(21503,0xf0e695ca96ad3LL),
       // C4[0], coeff of eps^6, polynomial in n of order 17
       real(0x5c9c64c833ea0LL),real(0x87cba49bc6200LL),real(0xcee016a8ff560LL),
       real(0x14a860e941a1c0LL),real(0x231567934bf020LL),
       real(0x40a648fc642980LL),real(0x85b2123b2c36e0LL),
       real(0x14a4159e5b98140LL),real(0x462d226dee7d1a0LL),
-      real(0x2316888f6f2f3100LL),reale(-3199LL,0xcb6e58663c860LL),
-      reale(3311LL,0xbf8f265e6c0c0LL),real(0x2372de10575f2320LL),
+      real(0x2316888f6f2f3100LL),-reale(3198,0x3491a799c37a0LL),
+      reale(3311,0xbf8f265e6c0c0LL),real(0x2372de10575f2320LL),
       -real(0x70af5543c56e4780LL),real(0x24bbd6e6395ee9e0LL),
       -real(0x116009bab4325fc0LL),real(0x75b7dfa9c5a24a0LL),
-      real(0x17de90e4beab49eLL),reale(21503LL,0xf0e695ca96ad3LL),
+      real(0x17de90e4beab49eLL),reale(21503,0xf0e695ca96ad3LL),
       // C4[0], coeff of eps^5, polynomial in n of order 18
       real(0x6a525328e6e0LL),real(0x93f17033fb30LL),real(0xd36a04706f00LL),
       real(0x137db4aaadad0LL),real(0x1de17febed720LL),real(0x300ece09a4c70LL),
@@ -152,7 +158,7 @@ namespace GeographicLib {
       real(0x21073529064696f0LL),real(0x486394f46ccebc0LL),
       -real(0x11777145e6374170LL),real(0x54159fc268987e0LL),
       -real(0x1fa4dd5835d2fd0LL),real(0x13d87fc86cca643LL),
-      reale(3071LL,0xfdd7cc41833d5LL),
+      reale(3071,0xfdd7cc41833d5LL),
       // C4[0], coeff of eps^4, polynomial in n of order 19
       real(0x3804d31f10c0LL),real(0x4b2ec20ad280LL),real(0x66f0ea418040LL),
       real(0x903f2204b400LL),real(0xcfad72d447c0LL),real(0x134cb9fa41580LL),
@@ -162,7 +168,7 @@ namespace GeographicLib {
       real(0x5cc8e678862db80LL),-real(0x22304c48df63bac0LL),
       real(0x25f7d3a888bb6d00LL),real(0x3210c8a6905acc0LL),
       -real(0x131873ea3222a180LL),real(0x4a33217f63b9c40LL),
-      real(0xaa39109cb79b1cLL),reale(3071LL,0xfdd7cc41833d5LL),
+      real(0xaa39109cb79b1cLL),reale(3071,0xfdd7cc41833d5LL),
       // C4[0], coeff of eps^3, polynomial in n of order 20
       real(0x1d8a60744340LL),real(0x26a12f47d0f0LL),real(0x3353c9ffe420LL),
       real(0x4570fd193850LL),real(0x5fe8194aa900LL),real(0x87a7057de1b0LL),
@@ -172,7 +178,7 @@ namespace GeographicLib {
       real(0xc1d47f99841160LL),real(0x65b5717bb21c290LL),
       -real(0x269fd1ef6edfa5c0LL),real(0x2dc2d3f3f9f963f0LL),
       -real(0xf46c321c1b54e0LL),-real(0x14642b52c5fe94b0LL),
-      real(0x6b46a122c3b5c05LL),reale(3071LL,0xfdd7cc41833d5LL),
+      real(0x6b46a122c3b5c05LL),reale(3071,0xfdd7cc41833d5LL),
       // C4[0], coeff of eps^2, polynomial in n of order 21
       real(0x65e46db33460LL),real(0x82b39a7b3380LL),real(0xa9e8c6cf36a0LL),
       real(0xe0317d0fa0c0LL),real(0x12cd0399df4e0LL),real(0x19b576ed17600LL),
@@ -181,9 +187,9 @@ namespace GeographicLib {
       real(0x22a518d96d25e0LL),real(0x43a50f3643bb00LL),
       real(0x95133a4d60b820LL),real(0x18b02de0f4e4040LL),
       real(0x5ac287501571660LL),real(0x31a5fa2db58d3d80LL),
-      reale(-5088LL,0xf42d1707298a0LL),reale(6752LL,0x2ce8487308ac0LL),
-      reale(-2185LL,0x790024cbb96e0LL),-real(0x199994ff919cd3b6LL),
-      reale(21503LL,0xf0e695ca96ad3LL),
+      -reale(5087,0xbd2e8f8d6760LL),reale(6752,0x2ce8487308ac0LL),
+      -reale(2184,0x86ffdb3446920LL),-real(0x199994ff919cd3b6LL),
+      reale(21503,0xf0e695ca96ad3LL),
       // C4[0], coeff of eps^1, polynomial in n of order 22
       real(0xd0da1980ba0LL),real(0x10803fb20d70LL),real(0x151a70ced0c0LL),
       real(0x1b569dc61a10LL),real(0x23ecd2ce6de0LL),real(0x2ff80cba60b0LL),
@@ -192,9 +198,9 @@ namespace GeographicLib {
       real(0x2d2aacb8da260LL),real(0x4e2c5253a0f30LL),real(0x914a9e2ed3380LL),
       real(0x128a302f4ef3d0LL),real(0x2b2226f5e6b4a0LL),
       real(0x7a36190e0daa70LL),real(0x1e8d8643836a9c0LL),
-      real(0x129e3dd12414f710LL),reale(-2185LL,0x790024cbb96e0LL),
-      reale(3276LL,0xca7fc8ce69db0LL),-real(0x5999897e7da4e4fdLL),
-      reale(7167LL,0xfaf78743878f1LL),
+      real(0x129e3dd12414f710LL),-reale(2184,0x86ffdb3446920LL),
+      reale(3276,0xca7fc8ce69db0LL),-real(0x5999897e7da4e4fdLL),
+      reale(7167,0xfaf78743878f1LL),
       // C4[0], coeff of eps^0, polynomial in n of order 23
       real(0x71a68037fdf14LL),real(0x81ebac5d53b48LL),real(0x957440e8ac5fcLL),
       real(0xad1ce56088670LL),real(0xca0c260c189e4LL),real(0xedd10e292f598LL),
@@ -206,18 +212,17 @@ namespace GeographicLib {
       real(0x108312ea2251254LL),real(0x1abbd57b12fd488LL),
       real(0x2fbd21c97d5693cLL),real(0x634bf45b6b1a7b0LL),
       real(0x11110dffb6688d24LL),real(0x666653fe46734ed8LL),
-      reale(-5735LL,0x9da06096c6c0cLL),reale(14335LL,0xf5ef0e870f1e2LL),
-      reale(21503LL,0xf0e695ca96ad3LL),
+      -reale(5734,0x625f9f69393f4LL),reale(14335,0xf5ef0e870f1e2LL),
+      reale(21503,0xf0e695ca96ad3LL),
       // C4[1], coeff of eps^23, polynomial in n of order 0
-      real(3401LL),real(0x1e8bbfc3LL),
+      3401,real(512475075),
       // C4[1], coeff of eps^22, polynomial in n of order 1
-      -real(0x539b40LL),real(0x3a8f8aLL),real(0x262893c099LL),
+      -5479232,3837834,real(163889528985LL),
       // C4[1], coeff of eps^21, polynomial in n of order 2
-      -real(0x4ca72060LL),real(0x220f8a90LL),real(0x87f8721LL),
-      real(0xef8343fb2e1LL),
+      -real(1286021216),real(571443856),real(142575393),real(0xef8343fb2e1LL),
       // C4[1], coeff of eps^20, polynomial in n of order 3
-      -real(0x3769db6980LL),real(0x203de5a900LL),-real(0x11f0163080LL),
-      real(0xc63a320ccLL),real(0x6119423638485LL),
+      -real(237999188352LL),real(138477414656LL),-real(77042430080LL),
+      real(53211242700LL),real(0x6119423638485LL),
       // C4[1], coeff of eps^19, polynomial in n of order 4
       -real(0x2066cb6031fc0LL),real(0x14c85e7394470LL),-real(0xf6b8f35571e0LL),
       real(0x6ad3f08040d0LL),real(0x1aa3b2832565LL),real(0x230f8ed873f29c63LL),
@@ -225,38 +230,38 @@ namespace GeographicLib {
       -real(0x33e9644cad5b40LL),real(0x22b6849ca6a500LL),
       -real(0x1ce364ad2a4ec0LL),real(0x104aaed8cf4680LL),
       -real(0x949f0f8a89e40LL),real(0x64bcf4df920c2LL),
-      reale(9215LL,0xf98764c489b7fLL),
+      reale(9215,0xf98764c489b7fLL),
       // C4[1], coeff of eps^17, polynomial in n of order 6
       -real(0x50a85b2e2e4060LL),real(0x36bb9aa442c6f0LL),
       -real(0x3029aafbbe0440LL),real(0x1dc29c0bd6ce90LL),
       -real(0x16a422844d9020LL),real(0x9763b8d8ca030LL),
-      real(0x25b8d7edff7ebLL),reale(9215LL,0xf98764c489b7fLL),
+      real(0x25b8d7edff7ebLL),reale(9215,0xf98764c489b7fLL),
       // C4[1], coeff of eps^16, polynomial in n of order 7
       -real(0x3822c174e5c7e00LL),real(0x25fbaf973d78c00LL),
       -real(0x222a860fbdb7a00LL),real(0x15dabd7a0984800LL),
       -real(0x129f00215535600LL),real(0xa0e9e0ae9b8400LL),
       -real(0x5ee97a6d2d5200LL),real(0x3eaf5acabd0e30LL),
-      reale(64511LL,0xd2b3c15fc4079LL),
+      reale(64511,0xd2b3c15fc4079LL),
       // C4[1], coeff of eps^15, polynomial in n of order 8
       -real(0x5ec1dcd7666b480LL),real(0x3ed4935a3fd8cd0LL),
       -real(0x38014f5e5d79960LL),real(0x240af6a53256570LL),
       -real(0x2049d0fb0404a40LL),real(0x12efbc065d3f410LL),
       -real(0xee9d804d5d8320LL),real(0x5ed209adebbcb0LL),
-      real(0x1798ea7fdd6773LL),reale(64511LL,0xd2b3c15fc4079LL),
+      real(0x1798ea7fdd6773LL),reale(64511,0xd2b3c15fc4079LL),
       // C4[1], coeff of eps^14, polynomial in n of order 9
       -real(0x19f69929deb8bc0LL),real(0x1054723730b1600LL),
       -real(0xdce6aeb616e040LL),real(0x8c0069813d6480LL),
       -real(0x7e59f70027c8c0LL),real(0x4bea01551feb00LL),
       -real(0x42bb28790cad40LL),real(0x21dd61f97d4180LL),
       -real(0x14f93d4343f5c0LL),real(0xd58968a8df35eLL),
-      reale(9215LL,0xf98764c489b7fLL),
+      reale(9215,0xf98764c489b7fLL),
       // C4[1], coeff of eps^13, polynomial in n of order 10
       -real(0x1ecd4a3794400de0LL),real(0x101df33ec1bb0110LL),
       -real(0xbc64ec7794b2980LL),real(0x71d5f4e2a637ff0LL),
       -real(0x625888ecafc7520LL),real(0x3aa6879742ff4d0LL),
       -real(0x3585f7f60d164c0LL),real(0x1d18174ef21abb0LL),
       -real(0x18117eb39416c60LL),real(0x8df7a42ab2f090LL),
-      real(0x23413de9276581LL),reale(64511LL,0xd2b3c15fc4079LL),
+      real(0x23413de9276581LL),reale(64511,0xd2b3c15fc4079LL),
       // C4[1], coeff of eps^12, polynomial in n of order 11
       -real(0x113775cb09582880LL),real(0x5790112bb17c4700LL),
       -real(0x204e01ed2b929d80LL),real(0x1063af9e8d99cc00LL),
@@ -264,7 +269,7 @@ namespace GeographicLib {
       -real(0x63910631abdcf80LL),real(0x368e0c562512600LL),
       -real(0x31ed34307286c80LL),real(0x170e89cb9dd1b00LL),
       -real(0xf5f0efdd07a180LL),real(0x93fb623bde75e4LL),
-      reale(64511LL,0xd2b3c15fc4079LL),
+      reale(64511,0xd2b3c15fc4079LL),
       // C4[1], coeff of eps^11, polynomial in n of order 12
       real(0x13635f7860ae69c0LL),-real(0x169d904d9d4691d0LL),
       -real(0x2254277308cd9e0LL),real(0xd20446e8d8a9710LL),
@@ -272,7 +277,7 @@ namespace GeographicLib {
       -real(0x1d3856fa2b08920LL),real(0xf7cadc640f92d0LL),
       -real(0xe3d2f6c9ad5cc0LL),real(0x6e412eaf297db0LL),
       -real(0x62000ef613c860LL),real(0x201266fb021690LL),
-      real(0x7ee4c480c21e1LL),reale(9215LL,0xf98764c489b7fLL),
+      real(0x7ee4c480c21e1LL),reale(9215,0xf98764c489b7fLL),
       // C4[1], coeff of eps^10, polynomial in n of order 13
       -real(0x5fe482817c4c40LL),-real(0x3373730b4b79d00LL),
       real(0x140f919171472640LL),-real(0x17f10e5417ef9980LL),
@@ -281,26 +286,26 @@ namespace GeographicLib {
       -real(0x1e9e562555aaa40LL),real(0xe85806d73b2100LL),
       -real(0xde44387c5bb7c0LL),real(0x581f06023d3480LL),
       -real(0x421ccd71c33140LL),real(0x245ff7208ef53aLL),
-      reale(9215LL,0xf98764c489b7fLL),
+      reale(9215,0xf98764c489b7fLL),
       // C4[1], coeff of eps^9, polynomial in n of order 14
       -real(0x47f3709eaa4320LL),-real(0xbb640bc2e1ae70LL),
       -real(0x2a7854a3ead7b40LL),-real(0x1701de8d91314210LL),
-      reale(2329LL,0x5f8472b9624a0LL),reale(-2856LL,0x183ee7d78d050LL),
+      reale(2329,0x5f8472b9624a0LL),-reale(2855,0xe7c1182872fb0LL),
       -real(0x785bf95be998780LL),real(0x66690260b30024b0LL),
       -real(0x272595745774a3a0LL),real(0x104f772bee315710LL),
       -real(0xe11ad02f34b53c0LL),real(0x5a192e055800370LL),
       -real(0x58d8bfb781fbbe0LL),real(0x17a156426e4c5d0LL),
-      real(0x5c88907e67c575LL),reale(64511LL,0xd2b3c15fc4079LL),
+      real(0x5c88907e67c575LL),reale(64511,0xd2b3c15fc4079LL),
       // C4[1], coeff of eps^8, polynomial in n of order 15
       -real(0x1138d3e7324700LL),-real(0x210a1008a4f200LL),
       -real(0x47b7d2285e8500LL),-real(0xbbe3dba17a1400LL),
       -real(0x2aeb63e9e4cb300LL),-real(0x1781d8a9c80b7600LL),
-      reale(2419LL,0xe4212c9be8f00LL),reale(-3064LL,0x283dcf5264800LL),
+      reale(2419,0xe4212c9be8f00LL),-reale(3063,0xd7c230ad9b800LL),
       -real(0x116171a56015f00LL),real(0x6cc31b4079da8600LL),
       -real(0x2af22cc657d11d00LL),real(0xf75e4ec12d0a400LL),
       -real(0xeb60cc0dd754b00LL),real(0x472a49a74880200LL),
       -real(0x4174f343c328900LL),real(0x1ed324af4f2fd18LL),
-      reale(64511LL,0xd2b3c15fc4079LL),
+      reale(64511,0xd2b3c15fc4079LL),
       // C4[1], coeff of eps^7, polynomial in n of order 16
       -real(0xd56426d4f700LL),-real(0x15fa65017d450LL),
       -real(0x26ba18ad11e20LL),-real(0x4a9605f1a58f0LL),
@@ -310,18 +315,18 @@ namespace GeographicLib {
       real(0x13a59aea9293560LL),real(0x10886ca52ccf3090LL),
       -real(0x6e8a4c27dbf8dc0LL),real(0x1f02cd8f1f8a5f0LL),
       -real(0x2216230a1ac48e0LL),real(0x5f13c815b08150LL),
-      real(0x1666b06ca8f56dLL),reale(9215LL,0xf98764c489b7fLL),
+      real(0x1666b06ca8f56dLL),reale(9215,0xf98764c489b7fLL),
       // C4[1], coeff of eps^6, polynomial in n of order 17
       -real(0x2678d0ed9f140LL),-real(0x39d0dbe263c00LL),
       -real(0x5aa623a5216c0LL),-real(0x95d2f30c44880LL),
       -real(0x108ea4db631840LL),-real(0x2005d27e0acd00LL),
       -real(0x463ad5e0e22dc0LL),-real(0xba80ab02c40180LL),
       -real(0x2b67c47d5d48f40LL),-real(0x186d6a49f7da1e00LL),
-      reale(2625LL,0x9832921f08b40LL),reale(-3628LL,0xf58d11b98a580LL),
+      reale(2625,0x9832921f08b40LL),-reale(3627,0xa72ee4675a80LL),
       real(0x17be252bac67e9c0LL),real(0x7a8f5366d9ba1100LL),
       -real(0x38a15d77b043abc0LL),real(0x9cd4e0bf35fec80LL),
       -real(0xceae5004f176d40LL),real(0x479bb2ae3c01ddaLL),
-      reale(64511LL,0xd2b3c15fc4079LL),
+      reale(64511,0xd2b3c15fc4079LL),
       // C4[1], coeff of eps^5, polynomial in n of order 18
       -real(0x11dc9e54dea60LL),-real(0x193ec5647cdf0LL),
       -real(0x24bda460ceb00LL),-real(0x3760182d9a010LL),
@@ -329,10 +334,10 @@ namespace GeographicLib {
       -real(0x10063188dee040LL),-real(0x1f228e862f9650LL),
       -real(0x44adcde9a37ce0LL),-real(0xb7cbf8f2d0e270LL),
       -real(0x2b3f803c770f580LL),-real(0x18c05d008644d490LL),
-      reale(2737LL,0x3ce4b1d74e1e0LL),reale(-4018LL,0x2086131467f50LL),
+      reale(2737,0x3ce4b1d74e1e0LL),-reale(4017,0xdf79eceb980b0LL),
       real(0x30ac41edd5123540LL),real(0x7e3ade121a8e0530LL),
       -real(0x45ec5d28a0fecf60LL),real(0x3577aaf625fa910LL),
-      real(0x7292b77d2ccfc9LL),reale(64511LL,0xd2b3c15fc4079LL),
+      real(0x7292b77d2ccfc9LL),reale(64511,0xd2b3c15fc4079LL),
       // C4[1], coeff of eps^4, polynomial in n of order 19
       -real(0x14469ef39280LL),-real(0x1b74a6d65900LL),-real(0x25fc6724f380LL),
       -real(0x35e25bf6c800LL),-real(0x4eb76c6a3c80LL),-real(0x771a92ddb700LL),
@@ -343,7 +348,7 @@ namespace GeographicLib {
       real(0x1963a1a8e71b2e80LL),-real(0x2849f713f5ed7200LL),
       real(0xd30bac57bb18580LL),real(0x105e1a36741daf00LL),
       -real(0xc8c696e03b05b80LL),real(0x1feab31d626d154LL),
-      reale(9215LL,0xf98764c489b7fLL),
+      reale(9215,0xf98764c489b7fLL),
       // C4[1], coeff of eps^3, polynomial in n of order 20
       -real(0xa4172dfa1c0LL),-real(0xd77fb109ed0LL),-real(0x11fc3eda7860LL),
       -real(0x1879b9235cf0LL),-real(0x2209eb95db00LL),-real(0x308bcfa5f110LL),
@@ -354,7 +359,7 @@ namespace GeographicLib {
       -real(0x37d6c7544511bb0LL),real(0x1a02f9f8abfbf940LL),
       -real(0x2d9fe91163ac57d0LL),real(0x18b01234447992a0LL),
       real(0x46ed1c414c80a10LL),-real(0x57c56c90ceabfa7LL),
-      reale(9215LL,0xf98764c489b7fLL),
+      reale(9215,0xf98764c489b7fLL),
       // C4[1], coeff of eps^2, polynomial in n of order 21
       -real(0x2271f7278cc0LL),-real(0x2c3f5c6ec900LL),-real(0x399dc5a18140LL),
       -real(0x4c2bebb96280LL),-real(0x6670101499c0LL),-real(0x8c75450f5400LL),
@@ -364,9 +369,9 @@ namespace GeographicLib {
       -real(0xc6fc7477c83c0LL),-real(0x18bdddb834aa00LL),
       -real(0x37ff6cf7616840LL),-real(0x9a5f4811c06b80LL),
       -real(0x25bde21729de0c0LL),-real(0x16ea24b2a28ff500LL),
-      reale(2841LL,0x69c686bdbaac0LL),reale(-5561LL,0x628c009235180LL),
-      reale(4369LL,0xdffb6688d240LL),-real(0x4cccbefeb4d67b22LL),
-      reale(64511LL,0xd2b3c15fc4079LL),
+      reale(2841,0x69c686bdbaac0LL),-reale(5560,0x9d73ff6dcae80LL),
+      reale(4369,0xdffb6688d240LL),-real(0x4cccbefeb4d67b22LL),
+      reale(64511,0xd2b3c15fc4079LL),
       // C4[1], coeff of eps^1, polynomial in n of order 22
       -real(0xd0da1980ba0LL),-real(0x10803fb20d70LL),-real(0x151a70ced0c0LL),
       -real(0x1b569dc61a10LL),-real(0x23ecd2ce6de0LL),-real(0x2ff80cba60b0LL),
@@ -376,16 +381,15 @@ namespace GeographicLib {
       -real(0x4e2c5253a0f30LL),-real(0x914a9e2ed3380LL),
       -real(0x128a302f4ef3d0LL),-real(0x2b2226f5e6b4a0LL),
       -real(0x7a36190e0daa70LL),-real(0x1e8d8643836a9c0LL),
-      -real(0x129e3dd12414f710LL),reale(2184LL,0x86ffdb3446920LL),
-      reale(-3277LL,0x3580373196250LL),real(0x5999897e7da4e4fdLL),
-      reale(64511LL,0xd2b3c15fc4079LL),
+      -real(0x129e3dd12414f710LL),reale(2184,0x86ffdb3446920LL),
+      -reale(3276,0xca7fc8ce69db0LL),real(0x5999897e7da4e4fdLL),
+      reale(64511,0xd2b3c15fc4079LL),
       // C4[2], coeff of eps^23, polynomial in n of order 0
-      real(10384LL),real(0x32e8ea45LL),
+      10384,real(854125125),
       // C4[2], coeff of eps^22, polynomial in n of order 1
-      real(0x3a924a0LL),real(0xefc484LL),real(0x35f1be97217LL),
+      real(61416608),15713412,real(0x35f1be97217LL),
       // C4[2], coeff of eps^21, polynomial in n of order 2
-      real(0x3ecd5100LL),-real(0x2a455b80LL),real(0x1a0aa978LL),
-      real(0x18f301bf7f77LL),
+      real(1053643008),-real(709188480),real(436906360),real(0x18f301bf7f77LL),
       // C4[2], coeff of eps^20, polynomial in n of order 3
       real(0x45823cb069c0LL),-real(0x3dc56cd10180LL),real(0x15b4532d4340LL),
       real(0x5946b207ad8LL),real(0xf72bf6e15a9abe5LL),
@@ -397,38 +401,38 @@ namespace GeographicLib {
       real(0x13c972f90d64d60LL),-real(0x12d8369dbbbb080LL),
       real(0xa013fa80d7c1a0LL),-real(0x95d1a2bb4de840LL),
       real(0x30a495fb9aa5e0LL),real(0xc95efc891d64cLL),
-      reale(107519LL,0xb480ecf4f161fLL),
+      reale(107519,0xb480ecf4f161fLL),
       // C4[2], coeff of eps^17, polynomial in n of order 6
       real(0x4b31e4eff4bc00LL),-real(0x4190c8b5d5de00LL),
       real(0x27770ac0842800LL),-real(0x270a0d33995200LL),
       real(0x10c9f01b859400LL),-real(0xd056352974600LL),
-      real(0x74f9dc1f6f260LL),reale(15359LL,0xf536fd4790329LL),
+      real(0x74f9dc1f6f260LL),reale(15359,0xf536fd4790329LL),
       // C4[2], coeff of eps^16, polynomial in n of order 7
       real(0x39908ef33285d00LL),-real(0x2a7d467835cbe00LL),
       real(0x1e0505551ade700LL),-real(0x1bf3204cf26d400LL),
       real(0xe195527d96f100LL),-real(0xe0af5ccd52ea00LL),
       real(0x41681113e87b00LL),real(0x1112b429bab2a0LL),
-      reale(107519LL,0xb480ecf4f161fLL),
+      reale(107519,0xb480ecf4f161fLL),
       // C4[2], coeff of eps^15, polynomial in n of order 8
       real(0xf8fa0142055000LL),-real(0x8f8aa7832e8a00LL),
       real(0x7d6f3ddfb47c00LL),-real(0x62d1e182b7be00LL),
       real(0x3bb149eddea800LL),-real(0x3be3b3e26a7200LL),
       real(0x175d0d17dad400LL),-real(0x14371cfc4fa600LL),
-      real(0xa8f8f5855a060LL),reale(15359LL,0xf536fd4790329LL),
+      real(0xa8f8f5855a060LL),reale(15359,0xf536fd4790329LL),
       // C4[2], coeff of eps^14, polynomial in n of order 9
       real(0x21490cd145715e0LL),-real(0xe087822f191900LL),
       real(0xf91f2bb3d29820LL),-real(0x949428c90dc2c0LL),
       real(0x7371ad50b34a60LL),-real(0x63c52e9a850c80LL),
       real(0x301579a22c8ca0LL),-real(0x33552a69ca1640LL),
       real(0xcc2c8c733bee0LL),real(0x35f5f30acfbecLL),
-      reale(15359LL,0xf536fd4790329LL),
+      reale(15359,0xf536fd4790329LL),
       // C4[2], coeff of eps^13, polynomial in n of order 10
       real(0x29bb6acaa073ef00LL),-real(0xc930d526d728e80LL),
       real(0xf55c2b3103d0c00LL),-real(0x63b9281a5449980LL),
       real(0x6acdfd5dbb92900LL),-real(0x441c8fce3be0480LL),
       real(0x2be797a45cb8600LL),-real(0x2aec3395f438f80LL),
       real(0xec70ff5d376300LL),-real(0xedc27143c9fa80LL),
-      real(0x7039bcd0124e68LL),reale(107519LL,0xb480ecf4f161fLL),
+      real(0x7039bcd0124e68LL),reale(107519,0xb480ecf4f161fLL),
       // C4[2], coeff of eps^12, polynomial in n of order 11
       -real(0x17ce935fc610ad40LL),-real(0x5d5bbde81a902580LL),
       real(0x2dcc12fb45c89240LL),-real(0xc1c61e98a479e00LL),
@@ -436,15 +440,15 @@ namespace GeographicLib {
       real(0x64ee85310393140LL),-real(0x481cf983db0cf00LL),
       real(0x2299f24f52810c0LL),-real(0x271fc56086d0780LL),
       real(0x79dac155045040LL),real(0x20c44d35dada38LL),
-      reale(107519LL,0xb480ecf4f161fLL),
+      reale(107519,0xb480ecf4f161fLL),
       // C4[2], coeff of eps^11, polynomial in n of order 12
-      -real(0x6b8bdbaa2666e600LL),reale(2706LL,0x6d4e4332c7e80LL),
+      -real(0x6b8bdbaa2666e600LL),reale(2706,0x6d4e4332c7e80LL),
       -real(0x201eb2939ffc7500LL),-real(0x605f6d97c740b880LL),
       real(0x32fb1ca66ccebc00LL),-real(0xb85f2dd585e0f80LL),
       real(0x10b7dbe9dec0ed00LL),-real(0x6e454f6a0fd4680LL),
       real(0x594f6f139205e00LL),-real(0x4c204810d601d80LL),
       real(0x16a875347934f00LL),-real(0x1be72589c185480LL),
-      real(0xb5a396e2ccd788LL),reale(107519LL,0xb480ecf4f161fLL),
+      real(0xb5a396e2ccd788LL),reale(107519,0xb480ecf4f161fLL),
       // C4[2], coeff of eps^10, polynomial in n of order 13
       real(0x332d666e095e20LL),real(0x205e97ebfb32780LL),
       -real(0xf80bf36cd359f20LL),real(0x19615ff8d71e0640LL),
@@ -453,16 +457,16 @@ namespace GeographicLib {
       real(0x26bbb213037c920LL),-real(0x11a4c9418dd9d80LL),
       real(0x9ec708de66cbe0LL),-real(0xaee5994e9b7ec0LL),
       real(0x1626e135e59ea0LL),real(0x610ef2b6b35c4LL),
-      reale(15359LL,0xf536fd4790329LL),
+      reale(15359,0xf536fd4790329LL),
       // C4[2], coeff of eps^9, polynomial in n of order 14
       real(0x1b709db1871200LL),real(0x51a2a024c26b00LL),
       real(0x157c554050bb400LL),real(0xddb41f944653d00LL),
-      -real(0x6d182f563006aa00LL),reale(2991LL,0xf7eb0ae304f00LL),
+      -real(0x6d182f563006aa00LL),reale(2991,0xf7eb0ae304f00LL),
       -real(0x387b65599c618800LL),-real(0x64242336a83ddf00LL),
       real(0x4282c6eaa3899a00LL),-real(0xa8fc3afb1e6cd00LL),
       real(0x1040dddbf0493c00LL),-real(0x9184bc07b2bfb00LL),
       real(0x281ea22622bde00LL),-real(0x3dc59bc648ee900LL),
-      real(0x13fb78815b4ca90LL),reale(107519LL,0xb480ecf4f161fLL),
+      real(0x13fb78815b4ca90LL),reale(107519,0xb480ecf4f161fLL),
       // C4[2], coeff of eps^8, polynomial in n of order 15
       real(0xacc0646b5180LL),real(0x1753663f74b00LL),real(0x3994d0061e480LL),
       real(0xadc1fbdd72e00LL),real(0x2e87a44adab780LL),
@@ -471,7 +475,7 @@ namespace GeographicLib {
       -real(0xe1c8d327ee92900LL),real(0xb2675f22d49b080LL),
       -real(0x19e66cd66684600LL),real(0x1f3a47aa5ea8380LL),
       -real(0x18da246c74e6300LL),real(0x10dd3b80dd1680LL),
-      real(0x3f21f272d2a30LL),reale(15359LL,0xf536fd4790329LL),
+      real(0x3f21f272d2a30LL),reale(15359,0xf536fd4790329LL),
       // C4[2], coeff of eps^7, polynomial in n of order 16
       real(0x2957d7da1000LL),real(0x4c28ba8a3700LL),real(0x9714a6610e00LL),
       real(0x14a5ff52a4500LL),real(0x33af2f78d8c00LL),real(0x9e87298409300LL),
@@ -480,107 +484,107 @@ namespace GeographicLib {
       -real(0xe1270d810dcfa00LL),-real(0xd23a021f3080300LL),
       real(0xd3b280b26948400LL),-real(0x22fd890d309b500LL),
       real(0x119ef453c630200LL),-real(0x1959af9980da700LL),
-      real(0x5959078fa70870LL),reale(15359LL,0xf536fd4790329LL),
+      real(0x5959078fa70870LL),reale(15359,0xf536fd4790329LL),
       // C4[2], coeff of eps^6, polynomial in n of order 17
       real(0x511612baa2a0LL),real(0x87a79de92a00LL),real(0xee2dd20af160LL),
       real(0x1bbcfaf32f4c0LL),real(0x37ba524fb5020LL),real(0x7b9b8f2a45f80LL),
       real(0x13a76fcf6fdee0LL),real(0x3d717a0fbe0a40LL),
       real(0x112dc752f02bda0LL),real(0xbfa002cc4689500LL),
-      -real(0x694405622017f3a0LL),reale(3484LL,0x979f3cbb89fc0LL),
-      reale(-2089LL,0xb01dfba51eb20LL),-real(0x49f87439584d3580LL),
+      -real(0x694405622017f3a0LL),reale(3484,0x979f3cbb89fc0LL),
+      -reale(2088,0x4fe2045ae14e0LL),-real(0x49f87439584d3580LL),
       real(0x6c3e90c1455479e0LL),-real(0x1afff07538f04ac0LL),
       -real(0x1a0f4cdf3b62760LL),-real(0x112f9b85f9ebf7cLL),
-      reale(107519LL,0xb480ecf4f161fLL),
+      reale(107519,0xb480ecf4f161fLL),
       // C4[2], coeff of eps^5, polynomial in n of order 18
       real(0x181437e05500LL),real(0x25c7b1fe6a80LL),real(0x3d5ebd606800LL),
       real(0x67dd27f0e580LL),real(0xb8ac7d2a7b00LL),real(0x15ce71e5cc080LL),
       real(0x2c7c6a3654e00LL),real(0x6460c05d0bb80LL),real(0x1046637cd7a100LL),
       real(0x340d46956b9680LL),real(0xef5f1bde883400LL),
       real(0xacec6aed73c1180LL),-real(0x63ea680d7ea23900LL),
-      reale(3605LL,0xecc3861a0ec80LL),reale(-2760LL,0x37fb593bf1a00LL),
+      reale(3605,0xecc3861a0ec80LL),-reale(2759,0xc804a6c40e600LL),
       -real(0x212a787bd0571880LL),real(0x70c6a0884332ed00LL),
       -real(0x31a5fa2db58d3d80LL),real(0x5033807138f7d98LL),
-      reale(107519LL,0xb480ecf4f161fLL),
+      reale(107519,0xb480ecf4f161fLL),
       // C4[2], coeff of eps^4, polynomial in n of order 19
       real(0x6f3f0983c40LL),real(0xa6cf9192980LL),real(0x100e50e166c0LL),
       real(0x197f658cec00LL),real(0x29f706a6f140LL),real(0x480b7a0eae80LL),
       real(0x821ecd9c1bc0LL),real(0xfa1d1da0b100LL),real(0x2081a78802640LL),
       real(0x4aefd4add3380LL),real(0xc730805b650c0LL),real(0x28f491e04e7600LL),
       real(0xc2d07512dddb40LL),real(0x92e539684c6b880LL),
-      -real(0x5a2096cfc695fa40LL),reale(3598LL,0x9cd1e91b83b00LL),
-      reale(-3554LL,0xe2b69fe3a1040LL),real(0x31a5fa2db58d3d80LL),
+      -real(0x5a2096cfc695fa40LL),reale(3598,0x9cd1e91b83b00LL),
+      -reale(3553,0x1d49601c5efc0LL),real(0x31a5fa2db58d3d80LL),
       real(0x3760835a5e313ac0LL),-real(0x1bed5cb9b61f7298LL),
-      reale(107519LL,0xb480ecf4f161fLL),
+      reale(107519,0xb480ecf4f161fLL),
       // C4[2], coeff of eps^3, polynomial in n of order 20
-      real(0x3f9079b600LL),real(0x5c3030c280LL),real(0x88a1097700LL),
-      real(0xcf80e01b80LL),real(0x1440886f800LL),real(0x20a73015480LL),
+      real(273006835200LL),real(395945493120LL),real(586817304320LL),
+      real(891220401024LL),real(0x1440886f800LL),real(0x20a73015480LL),
       real(0x36a4a027900LL),real(0x5f8b4acad80LL),real(0xb01798c3a00LL),
       real(0x15a2eb8a6680LL),real(0x2e235b147b00LL),real(0x6d6a30f2bf80LL),
       real(0x12c54474b7c00LL),real(0x40129870df880LL),real(0x13e41ecc817d00LL),
       real(0xfcf67c8cf45180LL),-real(0xa65f288fe794200LL),
       real(0x1cea83a477ce0a80LL),-real(0x240239aaff748100LL),
       real(0x1547221396f36380LL),-real(0x4e04d247d427178LL),
-      reale(15359LL,0xf536fd4790329LL),
+      reale(15359,0xf536fd4790329LL),
       // C4[2], coeff of eps^2, polynomial in n of order 21
-      real(0x49e4c0b060LL),real(0x687ef6a180LL),real(0x96820442a0LL),
-      real(0xdd4138e7c0LL),real(0x14ccaecc4e0LL),real(0x201acdf4e00LL),
+      real(317370445920LL),real(448806691200LL),real(646426411680LL),
+      real(950282020800LL),real(0x14ccaecc4e0LL),real(0x201acdf4e00LL),
       real(0x33093819720LL),real(0x53ed06eb440LL),real(0x8f8eb441960LL),
       real(0x1013bf0bfa80LL),real(0x1e750d7baba0LL),real(0x3dc4346800c0LL),
       real(0x88729901ade0LL),real(0x150e863aba700LL),real(0x3c89c1e8d8020LL),
       real(0xd9efed463cd40LL),real(0x47e39644808260LL),
       real(0x3d1b0c8706d5380LL),-real(0x2af704cef0cdeb60LL),
-      real(0x7c1ef17245e119c0LL),reale(-2185LL,0x790024cbb96e0LL),
-      real(0x333329ff2339a76cLL),reale(107519LL,0xb480ecf4f161fLL),
+      real(0x7c1ef17245e119c0LL),-reale(2184,0x86ffdb3446920LL),
+      real(0x333329ff2339a76cLL),reale(107519,0xb480ecf4f161fLL),
       // C4[3], coeff of eps^23, polynomial in n of order 0
-      real(70576LL),real(0x6cd1db26bLL),
+      70576,real(29211079275LL),
       // C4[3], coeff of eps^22, polynomial in n of order 1
-      -real(0x1dbc000LL),real(0x10088c0LL),real(0x192c8c2464fLL),
+      -real(31178752),real(16812224),real(0x192c8c2464fLL),
       // C4[3], coeff of eps^21, polynomial in n of order 2
-      -real(0x1fa8df9600LL),real(0x89ebf7900LL),real(0x24e4f9128LL),
+      -real(135977211392LL),real(37023086848LL),real(9903771944LL),
       real(0xb98f5d0044051LL),
       // C4[3], coeff of eps^20, polynomial in n of order 3
       -real(0x30f8b0f5c00LL),real(0x12d79f66800LL),-real(0x115c7023400LL),
-      real(0x8d25cb7890LL),real(0xa7c6f527b4f7c7LL),
+      real(606224480400LL),real(0xa7c6f527b4f7c7LL),
       // C4[3], coeff of eps^19, polynomial in n of order 4
       -real(0x3317d68847dc00LL),real(0x19fc69dd236700LL),
       -real(0x1c6d14df7ace00LL),real(0x6cfe4fac52d00LL),
-      real(0x1d99f24357808LL),reale(30105LL,0x847604e86c8c1LL),
+      real(0x1d99f24357808LL),reale(30105,0x847604e86c8c1LL),
       // C4[3], coeff of eps^18, polynomial in n of order 5
       -real(0x15b0eba45ef8000LL),real(0xf79bdd24a10000LL),
       -real(0xf32a8559288000LL),real(0x563281b24a8000LL),
       -real(0x5920796c2f8000LL),real(0x29f7b73471c480LL),
-      reale(150527LL,0x964e188a1ebc5LL),
+      reale(150527,0x964e188a1ebc5LL),
       // C4[3], coeff of eps^17, polynomial in n of order 6
       -real(0x1c02d0336ef1800LL),real(0x1d91ba24525dc00LL),
       -real(0x163d203e4811000LL),real(0xb8e8b252aa8400LL),
       -real(0xd2485de6110800LL),real(0x2a40e341b4ac00LL),
-      real(0xbb70f2cbcf360LL),reale(150527LL,0x964e188a1ebc5LL),
+      real(0xbb70f2cbcf360LL),reale(150527,0x964e188a1ebc5LL),
       // C4[3], coeff of eps^16, polynomial in n of order 7
       -real(0x58b4aa16ae3000LL),real(0x7fa0a14380e000LL),
       -real(0x429ab6e3829000LL),real(0x383428ed0d4000LL),
       -real(0x32e93ebd99f000LL),real(0x108fe88bbda000LL),
       -real(0x13ba86ffa65000LL),real(0x868b4ab8e3340LL),
-      reale(21503LL,0xf0e695ca96ad3LL),
+      reale(21503,0xf0e695ca96ad3LL),
       // C4[3], coeff of eps^15, polynomial in n of order 8
       -real(0xaedfc7febee000LL),real(0xe403ca9386ec00LL),
       -real(0x5568aa53f7a800LL),real(0x76f3d9af940400LL),
       -real(0x475f28b7bb7000LL),real(0x29018461d69c00LL),
       -real(0x2ed89591f13800LL),real(0x74380445fb400LL),
-      real(0x21274712bcba0LL),reale(21503LL,0xf0e695ca96ad3LL),
+      real(0x21274712bcba0LL),reale(21503,0xf0e695ca96ad3LL),
       // C4[3], coeff of eps^14, polynomial in n of order 9
-      -real(0x231ca125e5c8000LL),real(0x15ea7d5f05e0000LL),
+      -real(0x231ca125e5c8000LL),real(753027184687LL<<17),
       -real(0x97f88531f38000LL),real(0xee839ade908000LL),
       -real(0x572a9cdd748000LL),real(0x65a05d4f5f0000LL),
       -real(0x4ce11756538000LL),real(0x177f524c958000LL),
       -real(0x20e57338048000LL),real(0xc4518e260f380LL),
-      reale(21503LL,0xf0e695ca96ad3LL),
+      reale(21503,0xf0e695ca96ad3LL),
       // C4[3], coeff of eps^13, polynomial in n of order 10
       -real(0x44ebd4477ad4f200LL),real(0x9a6a6024b320f00LL),
       -real(0xe915ce102d6a800LL),real(0xb28d5273bcee100LL),
       -real(0x37fa968ec235e00LL),real(0x68974b850671300LL),
       -real(0x2a735b9bf505400LL),real(0x20513dd7a7f6500LL),
       -real(0x220360a9be2ca00LL),real(0x36d1c1a3f49700LL),
-      real(0x10369a2227fd98LL),reale(150527LL,0x964e188a1ebc5LL),
+      real(0x10369a2227fd98LL),reale(150527,0x964e188a1ebc5LL),
       // C4[3], coeff of eps^12, polynomial in n of order 11
       real(0x52462bb828351400LL),real(0x4a4d1c14e6172800LL),
       -real(0x4ced32c430d22400LL),real(0xb52b1b0c2492000LL),
@@ -588,24 +592,24 @@ namespace GeographicLib {
       -real(0x30072e56aae5400LL),real(0x605c027d5629000LL),
       -real(0x32e58b8ebb44c00LL),real(0x108221f23a90800LL),
       -real(0x1a7ac7295958400LL),real(0x836be4086f28d0LL),
-      reale(150527LL,0x964e188a1ebc5LL),
+      reale(150527,0x964e188a1ebc5LL),
       // C4[3], coeff of eps^11, polynomial in n of order 12
-      real(0x48f7bc8748dd3400LL),reale(-2562LL,0x8060698c5b900LL),
+      real(0x48f7bc8748dd3400LL),-reale(2561,0x7f9f9673a4700LL),
       real(0x601d0ed1c7f2b600LL),real(0x449204e4f86d4300LL),
       -real(0x56194f80f81a8800LL),real(0xea108cfa6f6ed00LL),
       -real(0xa7ad46bd016c600LL),real(0xef32c344e507700LL),
       -real(0x30a1762ff0e4400LL),real(0x4a78ea25c4fa100LL),
       -real(0x3c3cca9d1bd4200LL),real(0x22cbd76a022b00LL),
-      real(0x9df3abb037278LL),reale(150527LL,0x964e188a1ebc5LL),
+      real(0x9df3abb037278LL),reale(150527,0x964e188a1ebc5LL),
       // C4[3], coeff of eps^10, polynomial in n of order 13
       -real(0x9607df2a17c000LL),-real(0x739371b7f3d8000LL),
-      real(0x4688c366039fc000LL),reale(-2612LL,0x75993403fc000LL),
+      real(0x4688c366039fc000LL),-reale(2611,0x8a66cbfc04000LL),
       real(0x7056fbc7b1c24000LL),real(0x3af7506941670000LL),
       -real(0x601cadbaecf24000LL),real(0x14affbea17164000LL),
       -real(0x6daccbfd0bfc000LL),real(0x1036680bb42b8000LL),
       -real(0x42f04a7d6e84000LL),real(0x246d9b6ab84c000LL),
       -real(0x37cce3b53adc000LL),real(0xd43660c7def0c0LL),
-      reale(150527LL,0x964e188a1ebc5LL),
+      reale(150527,0x964e188a1ebc5LL),
       // C4[3], coeff of eps^9, polynomial in n of order 14
       -real(0x115a7e31ff400LL),-real(0x3c90c47c29600LL),
       -real(0x1311ab10640800LL),-real(0xf2246746703a00LL),
@@ -614,7 +618,7 @@ namespace GeographicLib {
       -real(0xf1ef7972c204400LL),real(0x47367775d725a00LL),
       -real(0x63378c7bb15800LL),real(0x22d63078c5cb600LL),
       -real(0xf8707c83e76c00LL),-real(0xb0e06786eae00LL),
-      -real(0x5e4438ea922f0LL),reale(21503LL,0xf0e695ca96ad3LL),
+      -real(0x5e4438ea922f0LL),reale(21503,0xf0e695ca96ad3LL),
       // C4[3], coeff of eps^8, polynomial in n of order 15
       -real(0x1fe011d85800LL),-real(0x4f422fb05000LL),-real(0xe40060fc8800LL),
       -real(0x32e664e9c2000LL),-real(0x1078ec0ef63800LL),
@@ -623,7 +627,7 @@ namespace GeographicLib {
       real(0x2c36e0d96c07000LL),-real(0x100d07856dfe4800LL),
       real(0x6d9c3efea16a000LL),-real(0x13ac4a3567f800LL),
       real(0x15b22a4de1ed000LL),-real(0x1452d18e2b42800LL),
-      real(0x32eab893d697a0LL),reale(21503LL,0xf0e695ca96ad3LL),
+      real(0x32eab893d697a0LL),reale(21503,0xf0e695ca96ad3LL),
       // C4[3], coeff of eps^7, polynomial in n of order 16
       -real(0x5003ad66000LL),-real(0xa79ae296200LL),-real(0x17d9e9f5d400LL),
       -real(0x3c8762ad2600LL),-real(0xb232a56ac800LL),-real(0x28dbf6ee52a00LL),
@@ -632,113 +636,113 @@ namespace GeographicLib {
       real(0x190bf0598fc65c00LL),-real(0x27c51cb844db600LL),
       -real(0xf8735fc98339800LL),real(0xa28217eef524600LL),
       -real(0xfc87c9cb4a8c00LL),-real(0x3228ffc0ed7e00LL),
-      -real(0x387bf611406670LL),reale(21503LL,0xf0e695ca96ad3LL),
+      -real(0x387bf611406670LL),reale(21503,0xf0e695ca96ad3LL),
       // C4[3], coeff of eps^6, polynomial in n of order 17
-      -real(0x62d694dc000LL),-real(0xba60f7a0000LL),-real(0x173b38f24000LL),
+      -real(0x62d694dc000LL),-real(97716157LL<<17),-real(0x173b38f24000LL),
       -real(0x319b0ca1c000LL),-real(0x7361a893c000LL),-real(0x12be5bef38000LL),
       -real(0x38b3402cc4000LL),-real(0xd6a4403694000LL),
       -real(0x4a69cc1535c000LL),-real(0x42816c266fd0000LL),
-      real(0x315cb6a39d95c000LL),reale(-2450LL,0x306e3c9574000LL),
-      reale(3143LL,0x2391393fc4000LL),-real(0x466890d45f668000LL),
+      real(0x315cb6a39d95c000LL),-reale(2449,0xcf91c36a8c000LL),
+      reale(3143,0x2391393fc4000LL),-real(0x466890d45f668000LL),
       -real(0x50368754849c4000LL),real(0x594b313771cfc000LL),
       -real(0x1cc16f4e99cdc000LL),real(0x1e8d8643836a9c0LL),
-      reale(150527LL,0x964e188a1ebc5LL),
+      reale(150527,0x964e188a1ebc5LL),
       // C4[3], coeff of eps^5, polynomial in n of order 18
       -real(0x1136c8f5600LL),-real(0x1e3b013df00LL),-real(0x37550c23000LL),
       -real(0x6a508e10100LL),-real(0xd872daf0a00LL),-real(0x1d8dd6618300LL),
       -real(0x468422b6a400LL),-real(0xbc9d06f02500LL),-real(0x24d784d09be00LL),
       -real(0x90d122dffa700LL),-real(0x347ca809f91800LL),
       -real(0x31861ec3b2ac900LL),real(0x276d051382ba8e00LL),
-      reale(-2164LL,0xaacb805bbb500LL),reale(3319LL,0x8d7da907400LL),
-      reale(-2192LL,0x2451a99991300LL),-real(0x47e396448082600LL),
+      -reale(2163,0x55347fa444b00LL),reale(3319,0x8d7da907400LL),
+      -reale(2191,0xdbae56666ed00LL),-real(0x47e396448082600LL),
       real(0x3577aaf625fa9100LL),-real(0x1449fb28d544cb98LL),
-      reale(150527LL,0x964e188a1ebc5LL),
+      reale(150527,0x964e188a1ebc5LL),
       // C4[3], coeff of eps^4, polynomial in n of order 19
-      -real(0xda1252c00LL),-real(0x16bd22f800LL),-real(0x2731e0a400LL),
-      -real(0x46214fc000LL),-real(0x830545dc00LL),-real(0x1017e988800LL),
+      -real(58538142720LL),-real(97662466048LL),-real(168340530176LL),
+      -real(301206585344LL),-real(562729180160LL),-real(0x1017e988800LL),
       -real(0x21987b95400LL),-real(0x4b78a99d000LL),-real(0xb9ccd9f8c00LL),
       -real(0x202de3701800LL),-real(0x68b6655d0400LL),-real(0x1af3df037e000LL),
       -real(0xa515b5f563c00LL),-real(0xa65924698da800LL),
       real(0x8fc72c890104c00LL),-real(0x226e597c6e0df000LL),
       real(0x3ee7237bf0721400LL),-real(0x3d1b0c8706d53800LL),
       real(0x1e8d8643836a9c00LL),-real(0x634bf45b6b1a7b0LL),
-      reale(50175LL,0xdcc4b2d8b4e97LL),
+      reale(50175,0xdcc4b2d8b4e97LL),
       // C4[3], coeff of eps^3, polynomial in n of order 20
-      -real(0x3da35ec00LL),-real(0x62f09c100LL),-real(0xa329fce00LL),
-      -real(0x11560fab00LL),-real(0x1e812bf000LL),-real(0x37d592b500LL),
-      -real(0x6af77a1200LL),-real(0xd82e3c9f00LL),-real(0x1d19ea9f400LL),
+      -real(16545868800LL),-real(26558972160LL),-real(43799006720LL),
+      -real(74458311424LL),-real(131016159232LL),-real(239806362880LL),
+      -real(459418505728LL),-real(928488660736LL),-real(0x1d19ea9f400LL),
       -real(0x43b761f2900LL),-real(0xad7cf6b5600LL),-real(0x1f71d9841300LL),
       -real(0x6bcf7c0df800LL),-real(0x1d7abbebd1d00LL),
       -real(0xc1b8d2e919a00LL),-real(0xd3e226aef40700LL),
       real(0xc94a0b2634a0400LL),-real(0x3577aaf625fa9100LL),
       real(0x6aef55ec4bf52200LL),-real(0x634bf45b6b1a7b00LL),
-      real(0x22221bff6cd11a48LL),reale(150527LL,0x964e188a1ebc5LL),
+      real(0x22221bff6cd11a48LL),reale(150527,0x964e188a1ebc5LL),
       // C4[4], coeff of eps^23, polynomial in n of order 0
-      real(567424LL),real(0x1467591741LL),
+      567424,real(87633237825LL),
       // C4[4], coeff of eps^22, polynomial in n of order 1
-      real(0x7f44f800LL),real(0x23b17a00LL),real(0x1358168b64fd9LL),
+      real(2135226368),real(598833664),real(0x1358168b64fd9LL),
       // C4[4], coeff of eps^21, polynomial in n of order 2
-      real(0x560fab000LL),-real(0x6488cc800LL),real(0x2bcf67580LL),
+      real(23101878272LL),-real(26986989568LL),real(11760203136LL),
       real(0x4f869592664b5LL),
       // C4[4], coeff of eps^20, polynomial in n of order 3
       real(0xa4d4b674a00LL),-real(0xbdc38ed8400LL),real(0x20274dfee00LL),
-      real(0x93ecaa9440LL),real(0x436914c918b5d6dLL),
+      real(635330794560LL),real(0x436914c918b5d6dLL),
       // C4[4], coeff of eps^19, polynomial in n of order 4
       real(0x481bf9079c000LL),-real(0x3c015f7917000LL),real(0x133447522e000LL),
       -real(0x195b19983d000LL),real(0xa0f15f7a8700LL),
-      reale(3518LL,0xd3a367a37a66dLL),
+      reale(3518,0xd3a367a37a66dLL),
       // C4[4], coeff of eps^18, polynomial in n of order 5
       real(0x1e9f26efa689000LL),-real(0x100c94382c2c000LL),
       real(0xabead3c2e1f000LL),-real(0xc04c79a6f96000LL),
       real(0x18fb8548735000LL),real(0x76d40a3ef6c00LL),
-      reale(193535LL,0x781b441f4c16bLL),
+      reale(193535,0x781b441f4c16bLL),
       // C4[4], coeff of eps^17, polynomial in n of order 6
       real(0x780536a0606000LL),-real(0x28779739e97000LL),
       real(0x3a9fdf130c4000LL),-real(0x2860390cb81000LL),
       real(0xcce73d3902000LL),-real(0x1322aa5844b000LL),
-      real(0x6bd0a3ad69900LL),reale(27647LL,0xec962e4d9d27dLL),
+      real(0x6bd0a3ad69900LL),reale(27647,0xec962e4d9d27dLL),
       // C4[4], coeff of eps^16, polynomial in n of order 7
       real(0x45af61c2ad1f800LL),-real(0x1b140a5252fd000LL),
       real(0x348e789bd7f6800LL),-real(0x137ac7aed3be000LL),
       real(0x11da35dc2ded800LL),-real(0x12097ef153ff000LL),
       real(0x186b19645c4800LL),real(0x7935fe20ccb00LL),
-      reale(193535LL,0x781b441f4c16bLL),
+      reale(193535,0x781b441f4c16bLL),
       // C4[4], coeff of eps^15, polynomial in n of order 8
       real(0x788485be348000LL),-real(0xbf417480965000LL),
       real(0xbdad05e3bd6000LL),-real(0x306dcc448df000LL),
       real(0x6c08266aea4000LL),-real(0x364dbd52879000LL),
       real(0x13468d692f2000LL),-real(0x1f6575294f3000LL),
-      real(0x97982d7211100LL),reale(27647LL,0xec962e4d9d27dLL),
+      real(0x97982d7211100LL),reale(27647,0xec962e4d9d27dLL),
       // C4[4], coeff of eps^14, polynomial in n of order 9
       real(0x99754be5293000LL),-real(0x273b2ae73028000LL),
       real(0xa610233e31d000LL),-real(0x8ee7336f99e000LL),
       real(0xd7a1a110827000LL),-real(0x2f0d74b9c14000LL),
       real(0x4f375451ab1000LL),-real(0x4002b6db48a000LL),
       real(0x20d804cbbb000LL),real(0xa41d3b221400LL),
-      reale(27647LL,0xec962e4d9d27dLL),
+      reale(27647,0xec962e4d9d27dLL),
       // C4[4], coeff of eps^13, polynomial in n of order 10
       real(0x6016f6408271a000LL),-real(0x1e7546e7a0d1b000LL),
       real(0x18e4e98f72c8000LL),-real(0x113f96068e695000LL),
       real(0x6af41cd57176000LL),-real(0x2590480c1d6f000LL),
       real(0x61253410a664000LL),-real(0x1c92661c6269000LL),
       real(0xfa686d5b4d2000LL),-real(0x188238347643000LL),
-      real(0x60544135abb900LL),reale(193535LL,0x781b441f4c16bLL),
+      real(0x60544135abb900LL),reale(193535,0x781b441f4c16bLL),
       // C4[4], coeff of eps^12, polynomial in n of order 11
-      reale(-2097LL,0x6253f1b27a00LL),-real(0xa96847f4d191400LL),
+      -reale(2096,0xf9dac0e4d8600LL),-real(0xa96847f4d191400LL),
       real(0x644f115411ee9e00LL),-real(0x2912ee32dfa61000LL),
       -real(0x81eeabcb01be00LL),-real(0xfba8345c9670c00LL),
       real(0x9bbda8340726600LL),-real(0x11537009b3f0800LL),
       real(0x51c2ea8aa8c0a00LL),-real(0x2bb89caf7310400LL),
       -real(0x162bd9b163d200LL),-real(0xac0895744a3c0LL),
-      reale(193535LL,0x781b441f4c16bLL),
+      reale(193535,0x781b441f4c16bLL),
       // C4[4], coeff of eps^11, polynomial in n of order 12
       -real(0x296aa6e320b86000LL),real(0x7d9f9f72af514800LL),
-      reale(-2285LL,0x1022817ab000LL),real(0x8d22edc50949800LL),
+      -reale(2284,0xfefdd7e855000LL),real(0x8d22edc50949800LL),
       real(0x6581767b41ffc000LL),-real(0x371ad32683bb1800LL),
       -real(0x915b5d6cd33000LL),-real(0xbce7db3a027c800LL),
       real(0xd0ebaf65b57e000LL),-real(0x1274db255bb7800LL),
       real(0x2970a5137d6f000LL),-real(0x30b8535f9002800LL),
-      real(0x8fa21d365c3780LL),reale(193535LL,0x781b441f4c16bLL),
+      real(0x8fa21d365c3780LL),reale(193535,0x781b441f4c16bLL),
       // C4[4], coeff of eps^10, polynomial in n of order 13
       real(0x73aaee373e800LL),real(0x6d942f05126000LL),
       -real(0x55d059f7fa72800LL),real(0x114ee97e0f335000LL),
@@ -747,16 +751,16 @@ namespace GeographicLib {
       real(0x90dadc83efa800LL),-real(0xbf52dd8df9e000LL),
       real(0x2172ab2d7549800LL),-real(0x85ae20f708f000LL),
       -real(0x10c904999a7800LL),-real(0xae78582fbfa00LL),
-      reale(27647LL,0xec962e4d9d27dLL),
+      reale(27647,0xec962e4d9d27dLL),
       // C4[4], coeff of eps^9, polynomial in n of order 14
       real(0x19fde85a2f000LL),real(0x6b4aa2bef4800LL),real(0x28c46a7eab6000LL),
       real(0x2827ed076a87800LL),-real(0x210a7394d5283000LL),
-      real(0x72396f4bbfb2a800LL),reale(-2621LL,0xb23f88e224000LL),
+      real(0x72396f4bbfb2a800LL),-reale(2620,0x4dc0771ddc000LL),
       real(0x40dce91ee367d800LL),real(0x52592d2deb84b000LL),
       -real(0x5a9bf1fdd05df800LL),real(0x10e48562d1f92000LL),
       real(0x1d4b91258bb3800LL),real(0xaa81c5529799000LL),
       -real(0x6eadf18b1729800LL),real(0xd0db43634fa080LL),
-      reale(193535LL,0x781b441f4c16bLL),
+      reale(193535,0x781b441f4c16bLL),
       // C4[4], coeff of eps^8, polynomial in n of order 15
       real(0x45bda664400LL),real(0xc8c97088800LL),real(0x2a5a46b84c00LL),
       real(0xb467fe915000LL),real(0x471c8a3c15400LL),real(0x49361b74ae1800LL),
@@ -765,102 +769,101 @@ namespace GeographicLib {
       real(0x759492ec34a6c00LL),-real(0xea1e49c1b0f9000LL),
       real(0x5db63d617b37400LL),real(0x31083890113800LL),
       -real(0xa60c227ea8400LL),-real(0x3b3da9a3dab180LL),
-      reale(27647LL,0xec962e4d9d27dLL),
+      reale(27647,0xec962e4d9d27dLL),
       // C4[4], coeff of eps^7, polynomial in n of order 16
-      real(0x6d40f58000LL),real(0x10545cac800LL),real(0x2adf04bd000LL),
+      real(469241266176LL),real(0x10545cac800LL),real(0x2adf04bd000LL),
       real(0x7eec6985800LL),real(0x1ba16d402000LL),real(0x7a072d7ae800LL),
       real(0x322ca20e07000LL),real(0x3657aa17207800LL),
       -real(0x3263434d5c54000LL),real(0xcd0703e8db70800LL),
       -real(0x17ea571d4aa2f000LL),real(0x141161dbf7ec9800LL),
       -real(0x57d62fedaaa000LL),-real(0xce7cd449810d800LL),
       real(0x99132fccc31b000LL),-real(0x27598ad75934800LL),
-      real(0x18a5cd1eccf980LL),reale(27647LL,0xec962e4d9d27dLL),
+      real(0x18a5cd1eccf980LL),reale(27647,0xec962e4d9d27dLL),
       // C4[4], coeff of eps^6, polynomial in n of order 17
-      real(0x4f8563d800LL),real(0xa96c658000LL),real(0x180da872800LL),
+      real(341540329472LL),real(727668064256LL),real(0x180da872800LL),
       real(0x3b0b3acd000LL),real(0x9f94c3e7800LL),real(0x1e8177ec2000LL),
       real(0x6e3ee471c800LL),real(0x1fbe99a5b7000LL),real(0xdb641b5c91800LL),
       real(0xfc08a38932c000LL),-real(0xfb6a7929bd39800LL),
-      real(0x466e762d282a1000LL),reale(-2431LL,0x7283aad43b800LL),
-      reale(2721LL,0xe81cb8f96000LL),-real(0x4dc0eea70f08f800LL),
+      real(0x466e762d282a1000LL),-reale(2430,0x8d7c552bc4800LL),
+      reale(2721,0xe81cb8f96000LL),-real(0x4dc0eea70f08f800LL),
       -real(0x1b9eda123c275000LL),real(0x2eba54dfb9ee5800LL),
-      -real(0xf46c321c1b54e00LL),reale(193535LL,0x781b441f4c16bLL),
+      -real(0xf46c321c1b54e00LL),reale(193535,0x781b441f4c16bLL),
       // C4[4], coeff of eps^5, polynomial in n of order 18
-      real(0x741543000LL),real(0xe4714b800LL),real(0x1d7c5d8000LL),
-      real(0x406b2a4800LL),real(0x9671f6d000LL),real(0x17cd936d800LL),
+      real(31160807424LL),real(61322082304LL),real(3864763LL<<15),
+      real(276675840000LL),real(646157094912LL),real(0x17cd936d800LL),
       real(0x429614e2000LL),real(0xd3b41886800LL),real(0x31f7c0917000LL),
       real(0xf21fb6ecf800LL),real(0x6ee892beec000LL),real(0x889688d5b28800LL),
       -real(0x944ac482b6bf000LL),real(0x2e4469f00aa71800LL),
-      -real(0x73c7760d5050a000LL),reale(2642LL,0x7d1cf3a18a800LL),
-      reale(-2186LL,0x92f4aa56eb000LL),real(0x3d1b0c8706d53800LL),
-      -real(0xb7512595147fa80LL),reale(193535LL,0x781b441f4c16bLL),
+      -real(0x73c7760d5050a000LL),reale(2642,0x7d1cf3a18a800LL),
+      -reale(2185,0x6d0b55a915000LL),real(0x3d1b0c8706d53800LL),
+      -real(0xb7512595147fa80LL),reale(193535,0x781b441f4c16bLL),
       // C4[4], coeff of eps^4, polynomial in n of order 19
-      real(0x6bb08e00LL),real(0xc7f67400LL),real(0x181eb1a00LL),
-      real(0x30a52a000LL),real(0x673602600LL),real(0xe8536cc00LL),
-      real(0x230e6ab200LL),real(0x5c19c1f800LL),real(0x10ca075be00LL),
+      real(1806732800),real(3354817536LL),real(6474635776LL),
+      real(13058088960LL),real(27705484800LL),real(62364503040LL),
+      real(150565728768LL),real(395569133568LL),real(0x10ca075be00LL),
       real(0x37f6c332400LL),real(0xdf0e61c4a00LL),real(0x47dfa8095000LL),
       real(0x236014b495600LL),real(0x2f60ae04237c00LL),
       -real(0x38c125ca4a81e00LL),real(0x13dd33a066e0a800LL),
       -real(0x389cd322becd1200LL),real(0x5ba892ca8a3fd400LL),
       -real(0x4c61cfa8c88a8600LL),real(0x18d2fd16dac69ec0LL),
-      reale(193535LL,0x781b441f4c16bLL),
+      reale(193535,0x781b441f4c16bLL),
       // C4[5], coeff of eps^23, polynomial in n of order 0
-      real(0xe17e80LL),real(0xd190230980fLL),
+      14777984,real(0xd190230980fLL),
       // C4[5], coeff of eps^22, polynomial in n of order 1
-      -real(0x63fa000LL),real(0x259cf00LL),real(0x62c2748ec71LL),
+      -real(104833024),real(39440128),real(0x62c2748ec71LL),
       // C4[5], coeff of eps^21, polynomial in n of order 2
-      -real(0xa82231000LL),real(0x12ebf1800LL),real(0x5cce6880LL),
+      -real(45133008896LL),real(5079242752LL),real(1557031040),
       real(0x4f869592664b5LL),
       // C4[5], coeff of eps^20, polynomial in n of order 3
-      -real(0xecd417f0000LL),real(0x4df40da0000LL),-real(0x78cb3050000LL),
+      -real(0xecd417f0000LL),real(40869997LL<<17),-real(0x78cb3050000LL),
       real(0x28d58610800LL),real(0x5263fcf5c8de3f7LL),
       // C4[5], coeff of eps^19, polynomial in n of order 4
       -real(0xf4977948ac000LL),real(0xfebd5b2ac3000LL),
       -real(0xf90c852576000LL),real(0x1257a8b1e1000LL),real(0x5e1a6b95fb00LL),
-      reale(21503LL,0xf0e695ca96ad3LL),
+      reale(21503,0xf0e695ca96ad3LL),
       // C4[5], coeff of eps^18, polynomial in n of order 5
       -real(0x25dd48c154000LL),real(0x596953f850000LL),
-      -real(0x2b40cdd44c000LL),real(0x104815a268000LL),
-      -real(0x1ab27f0a04000LL),real(0x7e701f145600LL),
-      reale(3071LL,0xfdd7cc41833d5LL),
+      -real(0x2b40cdd44c000LL),real(8741106765LL<<15),-real(0x1ab27f0a04000LL),
+      real(0x7e701f145600LL),reale(3071,0xfdd7cc41833d5LL),
       // C4[5], coeff of eps^17, polynomial in n of order 6
       -real(0x4776cd8c606000LL),real(0x6d8a47bfe9f000LL),
       -real(0x187da0ea944000LL),real(0x2b758d37739000LL),
       -real(0x22fd5e6d302000LL),real(0x107133def3000LL),real(0x56ef801cd100LL),
-      reale(33791LL,0xe845c6d0a3a27LL),
+      reale(33791,0xe845c6d0a3a27LL),
       // C4[5], coeff of eps^16, polynomial in n of order 7
       -real(0x6b41dfbb0208000LL),real(0x3281e67a9bd0000LL),
       -real(0x11e76a3ab618000LL),real(0x2fa8791e0ae0000LL),
       -real(0xef00faafea8000LL),real(0x82642584ff0000LL),
       -real(0xce6c8b206b8000LL),real(0x33a2c6e1f0cc00LL),
-      reale(236543LL,0x59e86fb479711LL),
+      reale(236543,0x59e86fb479711LL),
       // C4[5], coeff of eps^15, polynomial in n of order 8
       -real(0xd8a9f7e5e7f8000LL),real(0x75ff062faeb000LL),
       -real(0x57d41a79bb5a000LL),real(0x470a22b15ed1000LL),
       -real(0x941305430fc000LL),real(0x2571b5b524d7000LL),
       -real(0x15ee8622281e000LL),-real(0x810fd11a43000LL),
-      -real(0x3b143f8fcc100LL),reale(236543LL,0x59e86fb479711LL),
+      -real(0x3b143f8fcc100LL),reale(236543,0x59e86fb479711LL),
       // C4[5], coeff of eps^14, polynomial in n of order 9
-      -real(0x11e2c065bec000LL),real(0x1160c7104de0000LL),
+      -real(0x11e2c065bec000LL),real(597104820847LL<<17),
       -real(0x2505ead2add4000LL),real(0x375d7cf9da8000LL),
       -real(0x7d85d31b2fc000LL),real(0xc6e2597bcf0000LL),
       -real(0x1c3d1fca5e4000LL),real(0x26eff911138000LL),
       -real(0x32d040ac10c000LL),real(0xa3358a5620200LL),
-      reale(33791LL,0xe845c6d0a3a27LL),
+      reale(33791,0xe845c6d0a3a27LL),
       // C4[5], coeff of eps^13, polynomial in n of order 10
       -real(0x4e0fa2600780a000LL),real(0x4e911c6aabd6b000LL),
       -real(0x693532675088000LL),real(0x218ccc46e845000LL),
       -real(0x117da33185e06000LL),real(0x4517905378bf000LL),
       -real(0x10ba1c1d3344000LL),real(0x5399b73b0419000LL),
       -real(0x1d57ddd62302000LL),-real(0x2b67cba006d000LL),
-      -real(0x17851f6bed3f00LL),reale(236543LL,0x59e86fb479711LL),
+      -real(0x17851f6bed3f00LL),reale(236543,0x59e86fb479711LL),
       // C4[5], coeff of eps^12, polynomial in n of order 11
-      reale(2256LL,0x5da9961330000LL),-real(0x4ad304d1312a0000LL),
-      -real(0x4061e93f2b8f0000LL),real(0x5b0abf1dff380000LL),
+      reale(2256,0x5da9961330000LL),-real(0x4ad304d1312a0000LL),
+      -real(0x4061e93f2b8f0000LL),real(0xb6157e3bfe7LL<<19),
       -real(0x11e106d1afa10000LL),-real(0x36aeeaeb6e60000LL),
       -real(0xfcdce3949630000LL),real(0x8af39fd661c0000LL),
       real(0x3d8b99e8cb0000LL),real(0x2f252d98fde0000LL),
       -real(0x29a890537770000LL),real(0x62af9738c95800LL),
-      reale(236543LL,0x59e86fb479711LL),
+      reale(236543,0x59e86fb479711LL),
       // C4[5], coeff of eps^11, polynomial in n of order 12
       real(0x2c14f5cef5da000LL),-real(0xb44f7f3a7637800LL),
       real(0x144dd8529649b000LL),-real(0xdf6b3f6a9dda800LL),
@@ -868,7 +871,7 @@ namespace GeographicLib {
       -real(0x51c03e2adea3000LL),-real(0xd7c7b9cb0f0800LL),
       -real(0x16096a592762000LL),real(0x1c9393e7a4dc800LL),
       -real(0x381de14f961000LL),-real(0xdc6f16ca46800LL),
-      -real(0xd4311572ebf80LL),reale(33791LL,0xe845c6d0a3a27LL),
+      -real(0xd4311572ebf80LL),reale(33791,0xe845c6d0a3a27LL),
       // C4[5], coeff of eps^10, polynomial in n of order 13
       -real(0x1f7df788da000LL),-real(0x249f1260a08000LL),
       real(0x2485dbf6336a000LL),-real(0x9fd55d1961bc000LL),
@@ -877,118 +880,118 @@ namespace GeographicLib {
       -real(0x883ae4654d0a000LL),real(0x6d085594a8000LL),
       -real(0x3b594ff4c6000LL),real(0x18b250a1c574000LL),
       -real(0xc2af3f725e2000LL),real(0x11b5d0e5824b00LL),
-      reale(33791LL,0xe845c6d0a3a27LL),
+      reale(33791,0xe845c6d0a3a27LL),
       // C4[5], coeff of eps^9, polynomial in n of order 14
       -real(0x45be4df1f000LL),-real(0x154928d5d8800LL),
       -real(0x9c093f54d6000LL),-real(0xbe1dac855c3800LL),
       real(0xc8c35d9371b3000LL),-real(0x3b27b3be7f71e800LL),
-      reale(2105LL,0xa27ce5e51c000LL),reale(-2267LL,0xddae18aab6800LL),
+      reale(2105,0xa27ce5e51c000LL),-reale(2266,0x2251e75549800LL),
       real(0x215c4ca42d605000LL),real(0x52b0fbc40a45b800LL),
       -real(0x52abb6acf6af2000LL),real(0x14cab8bdb5a70800LL),
       real(0x422bb90412d7000LL),real(0xaa8f3f42195800LL),
-      -real(0x18c864fb5207380LL),reale(236543LL,0x59e86fb479711LL),
+      -real(0x18c864fb5207380LL),reale(236543,0x59e86fb479711LL),
       // C4[5], coeff of eps^8, polynomial in n of order 15
       -real(0x323b5354000LL),-real(0xa77c1e58000LL),-real(0x297150a3c000LL),
       -real(0xd25b36ef0000LL),-real(0x64c6f9d464000LL),
       -real(0x816d981c288000LL),real(0x91bbe6aceeb4000LL),
       -real(0x2ea0d03ef98a0000LL),real(0x748c356a9df8c000LL),
-      reale(-2464LL,0xbb08388f48000LL),real(0x55038197b9ea4000LL),
+      -reale(2463,0x44f7c770b8000LL),real(0x55038197b9ea4000LL),
       real(0x24c2f502435b0000LL),-real(0x557a28e333384000LL),
       real(0x319d6c472db18000LL),-real(0xa981b88bf66c000LL),
-      real(0x2452a78bb4ce00LL),reale(236543LL,0x59e86fb479711LL),
+      real(0x2452a78bb4ce00LL),reale(236543,0x59e86fb479711LL),
       // C4[5], coeff of eps^7, polynomial in n of order 16
-      -real(0x6982d8000LL),-real(0x1200880800LL),-real(0x367aead000LL),
-      -real(0xbc0ef21800LL),-real(0x306255a2000LL),-real(0x100b9fcf2800LL),
+      -real(864347LL<<15),-real(77318326272LL),-real(233990443008LL),
+      -real(807704598528LL),-real(0x306255a2000LL),-real(0x100b9fcf2800LL),
       -real(0x8171cf3d7000LL),-real(0xb08a440213800LL),
       real(0xd5be3a4ba94000LL),-real(0x4af12ff99ea4800LL),
       real(0xd4237986197f000LL),-real(0x15530c89262c5800LL),
       real(0x12c48ba350cca000LL),-real(0x590f07b7ee96800LL),
       -real(0x53e376c2a7ab000LL),real(0x5b3d559eedc8800LL),
-      -real(0x1b37127cacfe280LL),reale(33791LL,0xe845c6d0a3a27LL),
+      -real(0x1b37127cacfe280LL),reale(33791,0xe845c6d0a3a27LL),
       // C4[5], coeff of eps^6, polynomial in n of order 17
-      -real(0x287496000LL),-real(0x615720000LL),-real(0xfbb32a000LL),
-      -real(0x2c5b51c000LL),-real(0x8b2715e000LL),-real(0x1f40dc58000LL),
+      -real(10859667456LL),-real(199353LL<<17),-real(67565166592LL),
+      -real(190510645248LL),-real(597656199168LL),-real(65543051LL<<15),
       -real(0x869fe272000LL),-real(0x2f027b014000LL),-real(0x19275e39a6000LL),
       -real(0x24c57351390000LL),real(0x305c8c1f55c6000LL),
       -real(0x12c56d86cea0c000LL),real(0x3c958c9a69892000LL),
-      -real(0x75427b7d716c8000LL),reale(2264LL,0x2021045b7e000LL),
+      -real(0x75427b7d716c8000LL),reale(2264,0x2021045b7e000LL),
       -real(0x686da1b1a7d04000LL),real(0x2b2226f5e6b4a000LL),
-      -real(0x7a36190e0daa700LL),reale(236543LL,0x59e86fb479711LL),
+      -real(0x7a36190e0daa700LL),reale(236543,0x59e86fb479711LL),
       // C4[5], coeff of eps^5, polynomial in n of order 18
-      -real(0x176bb000LL),-real(0x339cb800LL),-real(0x78298000LL),
-      -real(0x12a324800LL),-real(0x31dd75000LL),-real(0x92088d800LL),
-      -real(0x1dded72000LL),-real(0x7091426800LL),-real(0x1ffab8af000LL),
-      -real(0xbdf5200f800LL),-real(0x6d0cb854c000LL),-real(0xacf22c5668800LL),
+      -real(392933376),-real(865908736),-real(61523<<15),-real(5002905600LL),
+      -real(13385551872LL),-real(39200544768LL),-real(128292691968LL),
+      -real(483473385472LL),-real(0x1ffab8af000LL),-real(0xbdf5200f800LL),
+      -real(0x6d0cb854c000LL),-real(0xacf22c5668800LL),
       real(0xfa276dd8697000LL),-real(0x6c92e41ed151800LL),
       real(0x18f8d3300c4da000LL),-real(0x382fdb2c1baea800LL),
       real(0x4f13f21826f5d000LL),-real(0x3d1b0c8706d53800LL),
-      real(0x131873ea3222a180LL),reale(236543LL,0x59e86fb479711LL),
+      real(0x131873ea3222a180LL),reale(236543,0x59e86fb479711LL),
       // C4[6], coeff of eps^23, polynomial in n of order 0
-      real(0x1316c00LL),real(0x45dab658805LL),
+      real(20016128),real(0x45dab658805LL),
       // C4[6], coeff of eps^22, polynomial in n of order 1
-      real(0x2e25f5000LL),real(0xf2951a00LL),real(0x1b45118f2c973bLL),
+      real(12387831808LL),real(4069857792LL),real(0x1b45118f2c973bLL),
       // C4[6], coeff of eps^21, polynomial in n of order 2
-      real(0x1946d60000LL),-real(0x2993250000LL),real(0xc21a91000LL),
+      real(828267LL<<17),-real(2724645LL<<16),real(52104335360LL),
       real(0x22cae1700cc0f3LL),
       // C4[6], coeff of eps^20, polynomial in n of order 3
       real(0x94a2566a8000LL),-real(0x7736ce990000LL),real(0x345f5a38000LL),
       real(0x11f45dc9000LL),real(0x36c560e36413be89LL),
       // C4[6], coeff of eps^19, polynomial in n of order 4
-      real(0x5a0e4ebdc0000LL),-real(0x1d4e9158b0000LL),real(0xfe56696e0000LL),
-      -real(0x195347b590000LL),real(0x66855efe5000LL),
-      reale(3630LL,0x89164e7bf8313LL),
+      real(6043548407LL<<18),-real(7867012491LL<<16),real(0xfe56696e0000LL),
+      -real(6798211929LL<<16),real(0x66855efe5000LL),
+      reale(3630,0x89164e7bf8313LL),
       // C4[6], coeff of eps^18, polynomial in n of order 5
       real(0x588efe4c176000LL),-real(0xcc317e9b08000LL),
       real(0x2e65271667a000LL),-real(0x1cb46908f84000LL),
       -real(0x7bc8d2682000LL),-real(0x36524dd3a400LL),
-      reale(39935LL,0xe3f55f53aa1d1LL),
+      reale(39935,0xe3f55f53aa1d1LL),
       // C4[6], coeff of eps^17, polynomial in n of order 6
       real(0x2dbd6ef2050000LL),-real(0x356ee7ee5e8000LL),
       real(0x65e2c9482e0000LL),-real(0x1247a684858000LL),
-      real(0x13c46949570000LL),-real(0x1b548eba6c8000LL),
-      real(0x5c900466be800LL),reale(39935LL,0xe3f55f53aa1d1LL),
+      real(84899613015LL<<16),-real(0x1b548eba6c8000LL),
+      real(0x5c900466be800LL),reale(39935,0xe3f55f53aa1d1LL),
       // C4[6], coeff of eps^16, polynomial in n of order 7
       -real(0x3fff5b5aa54000LL),-real(0x6a2cbaeaf348000LL),
       real(0x2b55e8782dc4000LL),-real(0x69f22faba30000LL),
       real(0x26e11f54b9dc000LL),-real(0x105d41b83118000LL),
       -real(0x12eb1ab4e0c000LL),-real(0x9530f9646a800LL),
-      reale(279551LL,0x3bb59b49a6cb7LL),
+      reale(279551,0x3bb59b49a6cb7LL),
       // C4[6], coeff of eps^15, polynomial in n of order 8
       real(0xf488f4012440000LL),-real(0xb16a4f02dfc8000LL),
       -real(0x103bba4a90d0000LL),-real(0x4da08c72a3d8000LL),
       real(0x45a11acaf220000LL),-real(0x25f21bc63e8000LL),
       real(0x12fccd9d4510000LL),-real(0x13e0eb3687f8000LL),
-      real(0x356c2e9517d800LL),reale(279551LL,0x3bb59b49a6cb7LL),
+      real(0x356c2e9517d800LL),reale(279551,0x3bb59b49a6cb7LL),
       // C4[6], coeff of eps^14, polynomial in n of order 9
       real(0x28c5c3199aad2000LL),real(0x80d5fb17a810000LL),
       real(0x9c623a70694e000LL),-real(0xf23c0600f3f4000LL),
       real(0x6928769f1ca000LL),-real(0x1e8f96869bf8000LL),
       real(0x4f9253e0b846000LL),-real(0x11e4e806cbfc000LL),
       -real(0x2dad19c0f3e000LL),-real(0x1f2fac1e88dc00LL),
-      reale(279551LL,0x3bb59b49a6cb7LL),
+      reale(279551,0x3bb59b49a6cb7LL),
       // C4[6], coeff of eps^13, polynomial in n of order 10
       -real(0xdb139b99ca0000LL),-real(0x5dbaf74a92790000LL),
-      real(0x3b504b033ef80000LL),real(0x39f346109690000LL),
-      real(0x1c11de49bba0000LL),-real(0x10aa5a9917350000LL),
+      real(0x76a096067dfLL<<19),real(0x39f346109690000LL),
+      real(964470918621LL<<17),-real(0x10aa5a9917350000LL),
       real(0x49bc5039b7c0000LL),real(0x92ae304aad0000LL),
       real(0x32f3e8ddd3e0000LL),-real(0x233311e51f10000LL),
-      real(0x4483a6a16dd000LL),reale(279551LL,0x3bb59b49a6cb7LL),
+      real(0x4483a6a16dd000LL),reale(279551,0x3bb59b49a6cb7LL),
       // C4[6], coeff of eps^12, polynomial in n of order 11
       -real(0xfbf5c5edd078000LL),real(0x1202fde81d5f0000LL),
       -real(0x454a07e84fa8000LL),-real(0xbd470dafdb40000LL),
       real(0xb3ba7d182928000LL),-real(0x155dacd6cc70000LL),
-      -real(0xdc21a82d608000LL),-real(0x1d2df304ada0000LL),
+      -real(0xdc21a82d608000LL),-real(0xe96f98256dLL<<17),
       real(0x167a9a9742c8000LL),-real(0x7d81f52ed0000LL),
       -real(0x7ffde3fc68000LL),-real(0xe287c62fa3000LL),
-      reale(39935LL,0xe3f55f53aa1d1LL),
+      reale(39935,0xe3f55f53aa1d1LL),
       // C4[6], coeff of eps^11, polynomial in n of order 12
-      -real(0x108032160840000LL),real(0x5885fb25bf70000LL),
+      -real(283480971297LL<<18),real(0x5885fb25bf70000LL),
       -real(0xe5dec7019ee0000LL),real(0x13305b31e4ed0000LL),
       -real(0x9278e6008580000LL),-real(0x855a0cffe9d0000LL),
       real(0xd3d848f453e0000LL),-real(0x4a9f485fda70000LL),
       -real(0xfb7b0fc02c0000LL),-real(0x691c2e87310000LL),
-      real(0x177c9a6d86a0000LL),-real(0x9585db4a3b0000LL),
-      real(0xa77dc54c8f000LL),reale(39935LL,0xe3f55f53aa1d1LL),
+      real(806997945397LL<<17),-real(0x9585db4a3b0000LL),
+      real(0xa77dc54c8f000LL),reale(39935,0xe3f55f53aa1d1LL),
       // C4[6], coeff of eps^10, polynomial in n of order 13
       real(0x6d0001099000LL),real(0x9a74d7ec5c000LL),-real(0xc18676170e1000LL),
       real(0x45ad31c7f8a2000LL),-real(0xc7369375e55b000LL),
@@ -996,733 +999,713 @@ namespace GeographicLib {
       -real(0x26bf9b041ad2000LL),real(0xce71cc8200b1000LL),
       -real(0x8c822446468c000LL),real(0x12e554ec5f37000LL),
       real(0xa6c4f3e59ba000LL),real(0x30bb36a52bd000LL),
-      -real(0x34440d2d335600LL),reale(39935LL,0xe3f55f53aa1d1LL),
+      -real(0x34440d2d335600LL),reale(39935,0xe3f55f53aa1d1LL),
       // C4[6], coeff of eps^9, polynomial in n of order 14
-      real(0x8fcb3bf8000LL),real(0x33bb5d994000LL),real(0x1c6cd111b0000LL),
+      real(0x8fcb3bf8000LL),real(0x33bb5d994000LL),real(7630295323LL<<16),
       real(0x2a77da91fcc000LL),-real(0x38ac5a4a0098000LL),
       real(0x160f7571fbc04000LL),-real(0x45e92df7f7ee0000LL),
       real(0x7f01d3c372a3c000LL),-real(0x7edcf27daed28000LL),
       real(0x27dfe4585e674000LL),real(0x38a548f303090000LL),
       -real(0x4b87231069354000LL),real(0x24d2adef05648000LL),
       -real(0x6a5625dbc71c000LL),-real(0x18371a5d233400LL),
-      reale(279551LL,0x3bb59b49a6cb7LL),
+      reale(279551,0x3bb59b49a6cb7LL),
       // C4[6], coeff of eps^8, polynomial in n of order 15
-      real(0x3bee10e000LL),real(0xe6dcd7c000LL),real(0x42cbc6ea000LL),
-      real(0x1923069d8000LL),real(0xe8a206ec6000LL),real(0x170dd449e34000LL),
+      real(257397153792LL),real(991547604992LL),real(0x42cbc6ea000LL),
+      real(843451707LL<<15),real(0xe8a206ec6000LL),real(0x170dd449e34000LL),
       -real(0x2102346c3b5e000LL),real(0xe0052eca6690000LL),
       -real(0x318a0eacb0b82000LL),real(0x690a1407d3eec000LL),
-      reale(-2183LL,0x49fe19ea5a000LL),real(0x61bf435eea348000LL),
+      -reale(2182,0xb601e615a6000LL),real(0x61bf435eea348000LL),
       -real(0xe133a8622dca000LL),-real(0x2748b26bf705c000LL),
       real(0x220d7d12f9812000LL),-real(0x98dbd66bee38400LL),
-      reale(279551LL,0x3bb59b49a6cb7LL),
+      reale(279551,0x3bb59b49a6cb7LL),
       // C4[6], coeff of eps^7, polynomial in n of order 16
-      real(0x9a2c0000LL),real(0x1df854000LL),real(0x684c68000LL),
-      real(0x1a2757c000LL),real(0x7eb6a10000LL),real(0x3232f0a4000LL),
+      real(9867LL<<18),real(8045019136LL),real(854413LL<<15),
+      real(6856031LL<<14),real(8304289LL<<16),real(0x3232f0a4000LL),
       real(0x1ec960fb8000LL),real(0x3439f07dcc000LL),-real(0x50f0148aea0000LL),
       real(0x25bf6de530f4000LL),-real(0x9635a567bcf8000LL),
       real(0x1735ee17e1e1c000LL),-real(0x25a38fef60750000LL),
       real(0x2834884b55944000LL),-real(0x1b3dfda8c79a8000LL),
       real(0xa981b88bf66c000LL),-real(0x1cc16f4e99cdc00LL),
-      reale(93183LL,0xbe91de6de243dLL),
+      reale(93183,0xbe91de6de243dLL),
       // C4[6], coeff of eps^6, polynomial in n of order 17
-      real(0xa16f000LL),real(0x1b5f0000LL),real(0x50671000LL),
-      real(0x103c32000LL),real(0x3aee73000LL),real(0xf7d074000LL),
-      real(0x4f19f75000LL),real(0x214230b6000LL),real(0x15d36ff77000LL),
-      real(0x2803a29af8000LL),-real(0x43d629aab87000LL),
-      real(0x232131018d3a000LL),-real(0x9e155c86fb85000LL),
-      real(0x1c3aabf38857c000LL),-real(0x361b1ee81aa83000LL),
-      real(0x44dcb2f8dc1be000LL),-real(0x325282c98d281000LL),
-      real(0xf46c321c1b54e00LL),reale(279551LL,0x3bb59b49a6cb7LL),
+      real(169275392),real(7007<<16),real(1348931584),real(4358086656LL),
+      real(15819288576LL),real(66522136576LL),real(339738054656LL),
+      real(0x214230b6000LL),real(0x15d36ff77000LL),real(0x2803a29af8000LL),
+      -real(0x43d629aab87000LL),real(0x232131018d3a000LL),
+      -real(0x9e155c86fb85000LL),real(0x1c3aabf38857c000LL),
+      -real(0x361b1ee81aa83000LL),real(0x44dcb2f8dc1be000LL),
+      -real(0x325282c98d281000LL),real(0xf46c321c1b54e00LL),
+      reale(279551,0x3bb59b49a6cb7LL),
       // C4[7], coeff of eps^23, polynomial in n of order 0
-      real(0x16e04c00LL),real(0x7ee24536c1115LL),
+      real(383798272),real(0x7ee24536c1115LL),
       // C4[7], coeff of eps^22, polynomial in n of order 1
-      -real(127523LL<<20),real(0x7f04dc000LL),real(0x1f771442bd4c09LL),
+      -real(127523LL<<20),real(34096398336LL),real(0x1f771442bd4c09LL),
       // C4[7], coeff of eps^21, polynomial in n of order 2
-      -real(0x5e69ccb80000LL),-real(0x129b18c0000LL),-real(0x7e0a2d5000LL),
+      -real(197998999LL<<19),-real(4877411LL<<18),-real(541336621056LL),
       real(0x3b1ebd1165abdce9LL),
       // C4[7], coeff of eps^20, polynomial in n of order 3
-      -real(0x44bcafdLL<<20),real(0x4022926LL<<20),-real(0x5be7eafLL<<20),
+      -real(72076029LL<<20),real(33625235LL<<21),-real(96370351LL<<20),
       real(0x142b356fa000LL),real(0x3f32837c872a7963LL),
       // C4[7], coeff of eps^19, polynomial in n of order 4
-      -real(0x860dfb0dLL<<20),real(0x30520b04740000LL),
-      -real(0x16c930c6e80000LL),-real(0x1551cc2040000LL),
-      -real(0x9e5c3c48b000LL),reale(46079LL,0xdfa4f7d6b097bLL),
+      -real(2249063181LL<<20),real(51883720989LL<<18),-real(12233087197LL<<19),
+      -real(1430728833LL<<18),-real(0x9e5c3c48b000LL),
+      reale(46079,0xdfa4f7d6b097bLL),
       // C4[7], coeff of eps^18, polynomial in n of order 5
-      -real(0x49904931bLL<<20),real(0x587ea7004LL<<20),-real(0x713785ddLL<<20),
-      real(0x159398e02LL<<20),-real(0x19125a29fLL<<20),real(0x490d94cd2c000LL),
-      reale(46079LL,0xdfa4f7d6b097bLL),
+      -real(19747083035LL<<20),real(5938781185LL<<22),-real(1899464157LL<<20),
+      real(2895955713LL<<21),-real(6730130079LL<<20),real(0x490d94cd2c000LL),
+      reale(46079,0xdfa4f7d6b097bLL),
       // C4[7], coeff of eps^17, polynomial in n of order 6
-      -real(0xf7ed31ddbc0000LL),real(0x2a1cd053860000LL),
-      -real(0x15bd5c44a80000LL),real(0x58222c9a6a0000LL),
-      -real(0x1a74fbea940000LL),-real(0x33adc5ff20000LL),
-      -real(0x1e088e877c800LL),reale(46079LL,0xdfa4f7d6b097bLL),
+      -real(0xf7ed31ddbc0000LL),real(90436020675LL<<17),
+      -real(11671406741LL<<19),real(0x58222c9a6a0000LL),
+      -real(28407954085LL<<18),-real(6936211449LL<<17),
+      -real(0x1e088e877c800LL),reale(46079,0xdfa4f7d6b097bLL),
       // C4[7], coeff of eps^16, polynomial in n of order 7
-      -real(0x50279d0e5080000LL),-real(0x1377536973LL<<20),
-      -real(0x5dbd91fdb180000LL),real(0x31c729210eLL<<20),
-      real(0x29488a66580000LL),real(0x14b8aba5efLL<<20),
-      -real(0x119aee903b80000LL),real(0x28435aa5d4b000LL),
-      reale(322559LL,0x1d82c6ded425dLL),
+      -real(688523975841LL<<19),-real(83606333811LL<<20),
+      -real(805224840035LL<<19),real(106897379463LL<<21),
+      real(22163836107LL<<19),real(88997602799LL<<20),
+      -real(151227539575LL<<19),real(0x28435aa5d4b000LL),
+      reale(322559,0x1d82c6ded425dLL),
       // C4[7], coeff of eps^15, polynomial in n of order 8
-      real(0x81cc8b1dcdLL<<20),real(0xfbb72a664ee0000LL),
-      -real(0xa9b81eb4ea40000LL),-real(0x1a9b4c3da160000LL),
-      -real(0x2fae19e7f980000LL),real(0x4780d431da60000LL),
-      -real(0x94b9eca98c0000LL),-real(0x26a006435e0000LL),
-      -real(0x238b221440f800LL),reale(322559LL,0x1d82c6ded425dLL),
+      real(557482450381LL<<20),real(0xfbb72a664ee0000LL),
+      -real(0xa9b81eb4ea40000LL),-real(914196917515LL<<17),
+      -real(409568792563LL<<19),real(0x4780d431da60000LL),
+      -real(0x94b9eca98c0000LL),-real(82946761135LL<<17),
+      -real(0x238b221440f800LL),reale(322559,0x1d82c6ded425dLL),
       // C4[7], coeff of eps^14, polynomial in n of order 9
-      -real(0x59ec90b7ba5LL<<20),real(0x1b2e993a518LL<<20),
-      real(0xb181e937d5LL<<20),real(0x848206ddd2LL<<20),
-      -real(0xf0573a4eb1LL<<20),real(0x178a3aa28cLL<<20),
-      real(0x54cb88cc9LL<<20),real(0x347f03cf46LL<<20),
-      -real(0x1d8e5249bdLL<<20),real(0x2fd680f7c84000LL),
-      reale(322559LL,0x1d82c6ded425dLL),
+      -real(0x59ec90b7ba5LL<<20),real(233491821731LL<<23),
+      real(762388756437LL<<20),real(284558585577LL<<21),
+      -real(0xf0573a4eb1LL<<20),real(25275836579LL<<22),
+      real(22761999561LL<<20),real(112734627747LL<<21),
+      -real(126941809085LL<<20),real(0x2fd680f7c84000LL),
+      reale(322559,0x1d82c6ded425dLL),
       // C4[7], coeff of eps^13, polynomial in n of order 10
-      real(0x565424989aa80000LL),real(0x19becd8256b40000LL),
-      -real(0x5ce84822f7eLL<<20),real(0x32b09223748c0000LL),
-      real(0x58cb61831980000LL),-real(0x21b97054d1c0000LL),
-      -real(0xe18452e77fLL<<20),real(0x73cbed27abc0000LL),
-      real(0x8bb5bd3c880000LL),-real(0xdb0f0aaec0000LL),
-      -real(0x63c3eeba719000LL),reale(322559LL,0x1d82c6ded425dLL),
+      real(0xaca84931355LL<<19),real(0x66fb36095adLL<<18),
+      -real(0x2e7424117bfLL<<21),real(0xcac2488dd23LL<<18),
+      real(762738574899LL<<19),-real(579380269895LL<<18),
+      -real(968587667327LL<<20),real(0x73cbed27abc0000LL),
+      real(75006191505LL<<19),-real(0xdb0f0aaec0000LL),
+      -real(0x63c3eeba719000LL),reale(322559,0x1d82c6ded425dLL),
       // C4[7], coeff of eps^12, polynomial in n of order 11
-      real(0x91dbaae447LL<<20),-real(0x10852008f6aLL<<20),
-      real(0xf5d2e8872dLL<<20),-real(0x19e277ff48LL<<20),
-      -real(0xba0387bf1dLL<<20),real(0xa9c28a7b5aLL<<20),
-      -real(0x1e0b075737LL<<20),-real(0x1365648a24LL<<20),
-      -real(0xc040d09c1LL<<20),real(0x157e47e59eLL<<20),
-      -real(0x731193f5bLL<<20),real(0x6042659ec2000LL),
-      reale(46079LL,0xdfa4f7d6b097bLL),
+      real(626455667783LL<<20),-real(567623567285LL<<21),
+      real(0xf5d2e8872dLL<<20),-real(13896712169LL<<23),
+      -real(798923144989LL<<20),real(364556664237LL<<21),
+      -real(129034049335LL<<20),-real(20826366601LL<<22),
+      -real(51607570881LL<<20),real(46156477135LL<<21),
+      -real(30888509275LL<<20),real(0x6042659ec2000LL),
+      reale(46079,0xdfa4f7d6b097bLL),
       // C4[7], coeff of eps^11, polynomial in n of order 12
-      real(0x4d670674dLL<<20),-real(0x212a526a59c0000LL),
-      real(0x74d620fb6d80000LL),-real(0xef8ba34c8740000LL),
-      real(0x116e3dbfd5eLL<<20),-real(0x7cf99a74ecc0000LL),
-      -real(0x6f74068a7180000LL),real(0xc30e342965c0000LL),
-      -real(0x6299996391LL<<20),real(0x2142ebd6040000LL),
-      real(0x937704e6f80000LL),real(0x402c43bf2c0000LL),
-      -real(0x2f872ef9963000LL),reale(46079LL,0xdfa4f7d6b097bLL),
+      real(20777559885LL<<20),-real(569775860071LL<<18),
+      real(0xe9ac41f6dbLL<<19),-real(0xef8ba34c8740000LL),
+      real(598911876783LL<<21),-real(0x7cf99a74ecc0000LL),
+      -real(957375911139LL<<19),real(0xc30e342965c0000LL),
+      -real(423483761553LL<<20),real(35714168193LL<<18),
+      real(79169625311LL<<19),real(68905136075LL<<18),
+      -real(0x2f872ef9963000LL),reale(46079,0xdfa4f7d6b097bLL),
       // C4[7], coeff of eps^10, polynomial in n of order 13
-      -real(0x121bdc9LL<<20),-real(0x1ef8211cLL<<20),real(0x3001ff791LL<<20),
-      -real(0x1624466f42LL<<20),real(0x55944c23ebLL<<20),
-      -real(0xc71654db68LL<<20),real(0x11c056e4d45LL<<20),
-      -real(0xdb34af9f8eLL<<20),real(0xeea56899fLL<<20),
-      real(0x9412b68a4cLL<<20),-real(0x93d752a107LL<<20),
-      real(0x3ee3b30826LL<<20),-real(0x9a03d5cadLL<<20),
-      -real(0x7382e0581c000LL),reale(46079LL,0xdfa4f7d6b097bLL),
+      -real(18988489LL<<20),-real(129894471LL<<22),real(12886996881LL<<20),
+      -real(47548938145LL<<21),real(367560238059LL<<20),
+      -real(106884143981LL<<23),real(0x11c056e4d45LL<<20),
+      -real(470740881351LL<<21),real(64061082015LL<<20),
+      real(158992278163LL<<22),-real(634972709127LL<<20),
+      real(135054066707LL<<21),-real(41343081645LL<<20),
+      -real(0x7382e0581c000LL),reale(46079,0xdfa4f7d6b097bLL),
       // C4[7], coeff of eps^9, polynomial in n of order 14
-      -real(0xd7e2520000LL),-real(0x5b0edcf0000LL),-real(0x3b8edf740000LL),
+      -real(7074089LL<<17),-real(95481295LL<<16),-real(249804765LL<<18),
       -real(0x6befb7d790000LL),real(0xb301172bea0000LL),
-      -real(0x5978c2137030000LL),real(0x17de1f39f1080000LL),
+      -real(0x5978c2137030000LL),real(0x2fbc3e73e21LL<<19),
       -real(0x3f35c80b0f2d0000LL),real(0x6ce3ff0d91260000LL),
       -real(0x7761d1ce42b70000LL),real(0x468057c8ed840000LL),
       real(0x1bcb7dfb99f0000LL),-real(0x26d98474089e0000LL),
       real(0x1d375a3e49150000LL),-real(0x7d9dd8c3269dc00LL),
-      reale(322559LL,0x1d82c6ded425dLL),
+      reale(322559,0x1d82c6ded425dLL),
       // C4[7], coeff of eps^8, polynomial in n of order 15
-      -real(0x2eaf40000LL),-real(0xcf0180000LL),-real(0x45b31c0000LL),
-      -real(0x1eeb47LL<<20),-real(0x156868840000LL),-real(0x29667c3c80000LL),
-      real(0x4a029719540000LL),-real(0x2867692d1aLL<<20),
-      real(0xbfc5c91f6ec0000LL),-real(0x243d93fc11780000LL),
+      -real(47805LL<<18),-real(105987LL<<19),-real(1141959LL<<18),
+      -real(2026311LL<<20),-real(89791009LL<<18),-real(1389164665LL<<19),
+      real(79467759189LL<<18),-real(86766818957LL<<21),
+      real(0xbfc5c91f6ec0000LL),-real(0x487b27f822fLL<<19),
       real(0x4a699e0854c40000LL),-real(0x69d85e75b6dLL<<20),
-      real(0x66f7a9fb575c0000LL),-real(0x4146a01c75280000LL),
-      real(0x18371a5d23340000LL),-real(0x3f90a5347c68800LL),
-      reale(322559LL,0x1d82c6ded425dLL),
+      real(0x66f7a9fb575c0000LL),-real(0x828d4038ea5LL<<19),
+      real(0x60dc69748cdLL<<18),-real(0x3f90a5347c68800LL),
+      reale(322559,0x1d82c6ded425dLL),
       // C4[7], coeff of eps^7, polynomial in n of order 16
-      -real(143LL<<20),-real(0x1f950000LL),-real(0x7df20000LL),
-      -real(0x248bf0000LL),-real(0xcf3b40000LL),-real(0x615b090000LL),
-      -real(0x47e90f60000LL),-real(0x95a9db330000LL),real(0x123032a3880000LL),
-      -real(0xaf0fe765fd0000LL),real(0x3a2548493060000LL),
-      -real(0xc8bdaa520270000LL),real(0x1e1c7325e6c40000LL),
-      -real(0x3353672f26710000LL),real(0x3c89c1e8d8020000LL),
-      -real(0x2a606e22fd9b0000LL),real(0xc94a0b2634a0400LL),
-      reale(322559LL,0x1d82c6ded425dLL),
+      -real(143<<20),-real(8085<<16),-real(16121<<17),-real(9810411520LL),
+      -real(212205LL<<18),-real(6380297LL<<16),-real(37701755LL<<17),
+      -real(0x95a9db330000LL),real(9764754545LL<<19),-real(0xaf0fe765fd0000LL),
+      real(0x3a2548493060000LL),-real(0xc8bdaa520270000LL),
+      real(0x7871cc979b1LL<<18),-real(0x3353672f26710000LL),
+      real(0x3c89c1e8d8020000LL),-real(0x2a606e22fd9b0000LL),
+      real(0xc94a0b2634a0400LL),reale(322559,0x1d82c6ded425dLL),
       // C4[8], coeff of eps^23, polynomial in n of order 0
-      real(0xecd8000LL),real(0x4f56c0c24f87LL),
+      real(7579<<15),real(0x4f56c0c24f87LL),
       // C4[8], coeff of eps^22, polynomial in n of order 1
-      -real(0x32ad0aLL<<20),-real(0x168d9710000LL),real(0x38232f25bccb5275LL),
+      -real(1660549LL<<21),-real(23648625LL<<16),real(0x38232f25bccb5275LL),
       // C4[8], coeff of eps^21, polynomial in n of order 2
-      real(0x932fdbLL<<20),-real(0xb7410080000LL),real(0x234f1b38000LL),
+      real(9646043LL<<20),-real(24019457LL<<19),real(74048359LL<<15),
       real(0x99262e0aeeff091LL),
       // C4[8], coeff of eps^20, polynomial in n of order 3
-      real(0x1558506bdd80000LL),-real(0x7a4a6b91fLL<<20),
-      -real(0xc1fc716b80000LL),-real(0x6677b4e9b0000LL),
-      reale(365566LL,0xff4ff27401803LL),
+      real(183351957435LL<<19),-real(32827160863LL<<20),
+      -real(6509093591LL<<19),-real(0x6677b4e9b0000LL),
+      reale(365566,0xff4ff27401803LL),
       // C4[8], coeff of eps^19, polynomial in n of order 4
-      real(0x1f4bce9766LL<<20),-real(0x5fdd5e580000LL),real(0xa3f440b43LL<<20),
-      -real(0x9fca1971c80000LL),real(0x195ba7c1ef8000LL),
-      reale(365566LL,0xff4ff27401803LL),
+      real(67207908275LL<<21),-real(201042891LL<<19),real(44011096899LL<<20),
+      -real(85786308153LL<<19),real(0x195ba7c1ef8000LL),
+      reale(365566,0xff4ff27401803LL),
       // C4[8], coeff of eps^18, polynomial in n of order 5
-      -real(0x1a16956LL<<20),-real(0x227092628LL<<20),real(0x53eaa5526LL<<20),
-      -real(0x1172940b4LL<<20),-real(0x3268c87eLL<<20),
-      -real(0x23cc4ec070000LL),reale(52223LL,0xdb549059b7125LL),
+      -real(13677739LL<<21),-real(1155605701LL<<23),real(11263093395LL<<21),
+      -real(1170886701LL<<22),-real(422863935LL<<21),-real(9609473031LL<<16),
+      reale(52223,0xdb549059b7125LL),
       // C4[8], coeff of eps^17, polynomial in n of order 6
-      -real(0x6472fe3LL<<20),-real(0xe3d4e1d7080000LL),real(0x46aa4c61eLL<<20),
-      real(0x916a2a5c80000LL),real(0x3227324dfLL<<20),
-      -real(0x236ac124680000LL),real(0x45bace6718000LL),
-      reale(52223LL,0xdb549059b7125LL),
+      -real(105328611LL<<20),-real(0xe3d4e1d7080000LL),real(9484526351LL<<21),
+      real(4879307961LL<<19),real(13462873311LL<<20),-real(19014362253LL<<19),
+      real(0x45bace6718000LL),reale(52223,0xdb549059b7125LL),
       // C4[8], coeff of eps^16, polynomial in n of order 7
-      real(0x1200bdf8116c0000LL),-real(0x5ba1b11ae080000LL),
-      -real(0x23e6c3f55fc0000LL),-real(0x3e50001d0bLL<<20),
-      real(0x3d5fd0e699c0000LL),-real(0x31f0d677580000LL),
-      -real(0x1b9c6065cc0000LL),-real(0x25c0cef2988000LL),
-      reale(365566LL,0xff4ff27401803LL),
+      real(0x4802f7e045bLL<<18),-real(787109524929LL<<19),
+      -real(616781829503LL<<18),-real(267630157067LL<<20),
+      real(0xf57f439a67LL<<18),-real(26811748075LL<<19),
+      -real(29646920051LL<<18),-real(0x25c0cef2988000LL),
+      reale(365566,0xff4ff27401803LL),
       // C4[8], coeff of eps^15, polynomial in n of order 8
-      real(0x392e4b99f4LL<<20),real(0x9d011c37ef80000LL),
-      real(0xd34e66de87LL<<20),-real(0xc0a473ee4980000LL),
-      -real(0xa24391f86LL<<20),-real(0x2950151b280000LL),
-      real(0x3428e530adLL<<20),-real(0x18bf1d836b80000LL),
-      real(0x216a7bfadc8000LL),reale(365566LL,0xff4ff27401803LL),
+      real(61397460605LL<<22),real(0x9d011c37ef80000LL),
+      real(907553463943LL<<20),-real(0xc0a473ee4980000LL),
+      -real(21778698179LL<<21),-real(22179652453LL<<19),
+      real(224024408237LL<<20),-real(212571195095LL<<19),
+      real(0x216a7bfadc8000LL),reale(365566,0xff4ff27401803LL),
       // C4[8], coeff of eps^14, polynomial in n of order 9
-      real(0x8ddebe343aLL<<20),-real(0xc011c31e9LL<<24),
-      real(0x3ab0cb9fe6LL<<20),real(0x1a9916d434LL<<20),
-      real(0x60678eb72LL<<20),-real(0x1ff9f88048LL<<20),
-      real(0xb64aaec9eLL<<20),real(0x224f2ebbcLL<<20),real(0x3674d12aLL<<20),
-      -real(0xde9c5a4230000LL),reale(52223LL,0xdb549059b7125LL),
+      real(304663697949LL<<21),-real(51558232553LL<<24),
+      real(126037118963LL<<21),real(28559389965LL<<22),real(12939195833LL<<21),
+      -real(17167224841LL<<23),real(24466781775LL<<21),real(2302458607LL<<22),
+      real(456812693LL<<21),-real(0xde9c5a4230000LL),
+      reale(52223,0xdb549059b7125LL),
       // C4[8], coeff of eps^13, polynomial in n of order 10
-      -real(0x71eca5b57e5LL<<20),real(0x46cc55ae2a580000LL),
-      real(0x1cee45fc03cLL<<20),-real(0x5663e4f0ecd80000LL),
-      real(0x35a7c7b51ddLL<<20),-real(0x974f15cf080000LL),
-      -real(0x7645cd0962LL<<20),-real(0x6f217f1c2380000LL),
-      real(0x8684ad181fLL<<20),-real(0x26e1e6e8c680000LL),
-      real(0x1689b847558000LL),reale(365566LL,0xff4ff27401803LL),
+      -real(0x71eca5b57e5LL<<20),real(0x8d98ab5c54bLL<<19),
+      real(497026592783LL<<22),-real(0xacc7c9e1d9bLL<<19),
+      real(0x35a7c7b51ddLL<<20),-real(81233361377LL<<19),
+      -real(253988603057LL<<21),-real(954606696519LL<<19),
+      real(577751554079LL<<20),-real(333997527437LL<<19),
+      real(0x1689b847558000LL),reale(365566,0xff4ff27401803LL),
       // C4[8], coeff of eps^12, polynomial in n of order 11
-      -real(0x1b3fbdf6d2c80000LL),real(0x45996b8ba21LL<<20),
-      -real(0x6e75aa49fe180000LL),real(0x6210f2c5834LL<<20),
-      -real(0x10bc4d28ff680000LL),-real(0x41cde5aa8b9LL<<20),
-      real(0x4ab1c7ac75480000LL),-real(0x1ca79717ce6LL<<20),
-      -real(0x32aa32794080000LL),real(0x330fe43f6dLL<<20),
-      real(0x1ffca3e30a80000LL),-real(0x12cf88fa6ff0000LL),
-      reale(365566LL,0xff4ff27401803LL),
+      -real(0x367f7beda59LL<<19),real(0x45996b8ba21LL<<20),
+      -real(0xdceb5493fc3LL<<19),real(0x18843cb160dLL<<22),
+      -real(0x21789a51fedLL<<19),-real(0x41cde5aa8b9LL<<20),
+      real(0x95638f58ea9LL<<19),-real(984566251123LL<<21),
+      -real(435207598721LL<<19),real(219309948781LL<<20),
+      real(274765170197LL<<19),-real(0x12cf88fa6ff0000LL),
+      reale(365566,0xff4ff27401803LL),
       // C4[8], coeff of eps^11, polynomial in n of order 12
-      -real(0x111ca21ceLL<<20),real(0x92841d41680000LL),
-      -real(0x29f2152631LL<<20),real(0x77700c12df80000LL),
-      -real(0xdd22256234LL<<20),real(0x102165ee69880000LL),
-      -real(0x97d2f2eab7LL<<20),-real(0x25f0afa39e80000LL),
-      real(0x9732beeb66LL<<20),-real(0x7cbf10f6a580000LL),
-      real(0x2f60975b43LL<<20),-real(0x618af655c80000LL),
-      -real(0x8a9d0d3688000LL),reale(52223LL,0xdb549059b7125LL),
+      -real(2296713447LL<<21),real(78660216877LL<<19),
+      -real(180155131441LL<<20),real(0xeee01825bfLL<<19),
+      -real(237440161933LL<<22),real(0x2042cbdcd31LL<<19),
+      -real(652079196855LL<<20),-real(325903664957LL<<19),
+      real(324695717299LL<<21),-real(0xf97e21ed4bLL<<19),
+      real(203483994947LL<<20),-real(52367903417LL<<19),
+      -real(0x8a9d0d3688000LL),reale(52223,0xdb549059b7125LL),
       // C4[8], coeff of eps^10, polynomial in n of order 13
-      real(0x22cb56LL<<20),real(0x4712bf8LL<<20),-real(0x86448846LL<<20),
-      real(0x4d78a5544LL<<20),-real(0x1846aa1b42LL<<20),
-      real(0x4d6026db5LL<<24),-real(0xa68352f15eLL<<20),
-      real(0xf43495185cLL<<20),-real(0xe824a7465aLL<<20),
-      real(0x705265a6a8LL<<20),real(0x1aafe4620aLL<<20),
-      -real(0x54b54f2f8cLL<<20),real(0x39c1702c0eLL<<20),
-      -real(0xf0a5fe0ce50000LL),reale(52223LL,0xdb549059b7125LL),
+      real(1140139LL<<21),real(9315711LL<<23),-real(1126319139LL<<21),
+      real(5199009105LL<<22),-real(52132384161LL<<21),real(20770352565LL<<24),
+      -real(357583911087LL<<21),real(262213551639LL<<22),
+      -real(498523677485LL<<21),real(60302341333LL<<23),
+      real(57310064901LL<<21),-real(90954779619LL<<22),
+      real(124029244935LL<<21),-real(0xf0a5fe0ce50000LL),
+      reale(52223,0xdb549059b7125LL),
       // C4[8], coeff of eps^9, polynomial in n of order 14
-      real(54009LL<<20),real(0x67acb80000LL),real(0x500d1aLL<<20),
-      real(0xadfe97880000LL),-real(0x160da3e85LL<<20),real(0xdd0128d3580000LL),
-      -real(0x4c49107c44LL<<20),real(0x1114fafcba280000LL),
-      -real(0x2a9587ee883LL<<20),real(0x4c17a3da25f80000LL),
-      -real(0x61c2e73ffa2LL<<20),real(0x584c43ef70c80000LL),
-      -real(0x35101f0ee01LL<<20),real(0x12f378ce74980000LL),
-      -real(0x306e34ba4668000LL),reale(365566LL,0xff4ff27401803LL),
+      real(54009LL<<20),real(849303LL<<19),real(2623117LL<<21),
+      real(364892913LL<<19),-real(5919882885LL<<20),real(0xdd0128d3580000LL),
+      -real(81910832913LL<<22),real(0x2229f5f9745LL<<19),
+      -real(0x2a9587ee883LL<<20),real(0x982f47b44bfLL<<19),
+      -real(0x30e1739ffd1LL<<21),real(0xb09887dee19LL<<19),
+      -real(0x35101f0ee01LL<<20),real(0x25e6f19ce93LL<<19),
+      -real(0x306e34ba4668000LL),reale(365566,0xff4ff27401803LL),
       // C4[8], coeff of eps^8, polynomial in n of order 15
-      real(0x11ee0000LL),real(0x5b1c0000LL),real(0x2380a0000LL),
-      real(0x126f180000LL),real(0xf233a60000LL),real(0x234385140000LL),
-      -real(0x4d5c1f23e0000LL),real(0x35017da21LL<<20),
-      -real(0x144a92180a20000LL),real(0x51fe4e56b0c0000LL),
-      -real(0xeb59f3d2e860000LL),real(0x1f060a0805080000LL),
-      -real(0x305340db42ea0000LL),real(0x35b1d648f5040000LL),
-      -real(0x2452a78bb4ce0000LL),real(0xa981b88bf66c000LL),
-      reale(365566LL,0xff4ff27401803LL),
+      real(2295<<17),real(5831<<18),real(72709LL<<17),real(151011LL<<19),
+      real(7936467LL<<17),real(147906885LL<<18),-real(0x4d5c1f23e0000LL),
+      real(14228642337LL<<20),-real(697203474513LL<<17),
+      real(0x51fe4e56b0c0000LL),-real(0xeb59f3d2e860000LL),
+      real(0x3e0c14100a1LL<<19),-real(0x305340db42ea0000LL),
+      real(0xd6c75923d41LL<<18),-real(0x2452a78bb4ce0000LL),
+      real(0xa981b88bf66c000LL),reale(365566,0xff4ff27401803LL),
       // C4[9], coeff of eps^23, polynomial in n of order 0
-      -real(0x59168000LL),real(0xa0b835899f381LL),
+      -real(45613<<15),real(0xa0b835899f381LL),
       // C4[9], coeff of eps^22, polynomial in n of order 1
-      -real(0x8e52aaLL<<20),real(0x18513690000LL),real(0x8f68f0ea15ed989LL),
+      -real(4663637LL<<21),real(25498473LL<<16),real(0x8f68f0ea15ed989LL),
       // C4[9], coeff of eps^21, polynomial in n of order 2
-      -real(0x12b4039bLL<<20),-real(0x2ab303780000LL),-real(0x1a402b7d8000LL),
-      reale(5306LL,0x2ad1d52b570cdLL),
+      -real(313787291LL<<20),-real(89546863LL<<19),-real(880826107LL<<15),
+      reale(5306,0x2ad1d52b570cdLL),
       // C4[9], coeff of eps^20, polynomial in n of order 3
-      real(0x193584d8cLL<<20),real(0xaee4c7138LL<<20),-real(0x90b2b09bcLL<<20),
-      real(0x14347a15e20000LL),reale(408574LL,0xe11d1e092eda9LL),
+      real(1691751267LL<<22),real(5868457511LL<<23),-real(9710518895LL<<22),
+      real(43389881073LL<<17),reale(408574,0xe11d1e092eda9LL),
       // C4[9], coeff of eps^19, polynomial in n of order 4
-      -real(0x154417c7baLL<<20),real(0x21c835beaa80000LL),
-      -real(0x47f00f48dLL<<20),-real(0x131fb47ac80000LL),
-      -real(0x11435a10568000LL),reale(408574LL,0xe11d1e092eda9LL),
+      -real(45668361181LL<<21),real(290185772373LL<<19),
+      -real(19310638221LL<<20),-real(10267037529LL<<19),
+      -real(0x11435a10568000LL),reale(408574,0xe11d1e092eda9LL),
       // C4[9], coeff of eps^18, polynomial in n of order 5
-      -real(0x605a433c5eLL<<20),real(0xee9760038LL<<20),
-      real(0x31be2bbeeLL<<20),real(0x16998498fcLL<<20),
-      -real(0xd95bd4266LL<<20),real(0x173060290f0000LL),
-      reale(408574LL,0xe11d1e092eda9LL),
+      -real(206915608111LL<<21),real(8005795847LL<<23),real(6676372983LL<<21),
+      real(24266221119LL<<22),-real(29173391667LL<<21),real(99595856143LL<<16),
+      reale(408574,0xe11d1e092eda9LL),
       // C4[9], coeff of eps^17, polynomial in n of order 6
-      -real(0x39cd187bbLL<<20),-real(0x43663bd8c80000LL),
-      -real(0xa53ccf9f2LL<<20),real(0x73d8c049880000LL),real(0x29510997LL<<20),
-      -real(0x2376b9f280000LL),-real(0x5829503048000LL),
-      reale(58367LL,0xd70428dcbd8cfLL),
+      -real(15515879355LL<<20),-real(36184750873LL<<19),
+      -real(22177807609LL<<21),real(62194714929LL<<19),real(693176727LL<<20),
+      -real(1189966821LL<<19),-real(0x5829503048000LL),
+      reale(58367,0xd70428dcbd8cfLL),
       // C4[9], coeff of eps^16, polynomial in n of order 7
-      real(0x47bc345c88LL<<20),real(0xfc7910c13LL<<24),
-      -real(0x8a99ea3268LL<<20),-real(0x1daff62ceLL<<24),
-      -real(0xb75ae4cd8LL<<20),real(0x327b674f1LL<<24),
-      -real(0x14b41287c8LL<<20),real(0x17347d5efc0000LL),
-      reale(408574LL,0xe11d1e092eda9LL),
+      real(38512528273LL<<23),real(67772681235LL<<24),-real(74410968653LL<<23),
+      -real(3984568679LL<<25),-real(6152374683LL<<23),real(13551170801LL<<24),
+      -real(11115057401LL<<23),real(24916219839LL<<18),
+      reale(408574,0xe11d1e092eda9LL),
       // C4[9], coeff of eps^15, polynomial in n of order 8
-      -real(0x9726f4fc34LL<<20),real(0xff4317f5080000LL),
-      real(0x1bbfa05d89LL<<20),real(0xf6d36e74980000LL),
-      -real(0x1da1c48f9aLL<<20),real(0x736575d3280000LL),
-      real(0x282d7a403LL<<20),real(0x7ce6feab80000LL),-real(0xd59ae9d0e8000LL),
-      reale(58367LL,0xd70428dcbd8cfLL),
+      -real(162298412813LL<<22),real(0xff4317f5080000LL),
+      real(119179074953LL<<20),real(0xf6d36e74980000LL),
+      -real(63634032589LL<<21),real(61952932453LL<<19),real(10785104899LL<<20),
+      real(4191026519LL<<19),-real(0xd59ae9d0e8000LL),
+      reale(58367,0xd70428dcbd8cfLL),
       // C4[9], coeff of eps^14, polynomial in n of order 9
-      real(0x4be3b7611eLL<<20),real(0x7df9c8e65LL<<24),
-      -real(0xb7d5e385beLL<<20),real(0x4ff746711cLL<<20),
-      real(0xf1de11b06LL<<20),-real(0xbdd4407d8LL<<20),
-      -real(0x123b4a6356LL<<20),real(0x10f0c4fcb4LL<<20),
-      -real(0x44ea62792LL<<20),real(0x16fdaafdd0000LL),
-      reale(58367LL,0xd70428dcbd8cfLL),
+      real(162971496591LL<<21),real(33816350309LL<<24),
+      -real(394783736543LL<<21),real(85862751303LL<<22),
+      real(32462900611LL<<21),-real(6369607931LL<<23),-real(39152071083LL<<21),
+      real(18189729581LL<<22),-real(9249690569LL<<21),real(6171570141LL<<16),
+      reale(58367,0xd70428dcbd8cfLL),
       // C4[9], coeff of eps^13, polynomial in n of order 10
-      real(0x52d38896f8bLL<<20),-real(0x69d66f818ca80000LL),
-      real(0x4656ca873fcLL<<20),real(0xca9586e4a280000LL),
-      -real(0x486f0b6e413LL<<20),real(0x3e51674541f80000LL),
-      -real(0x11c29dd7982LL<<20),-real(0x538c73053380000LL),
-      real(0x250fa482cfLL<<20),real(0x21f35b25c980000LL),
-      -real(0x110150274e88000LL),reale(408574LL,0xe11d1e092eda9LL),
+      real(0x52d38896f8bLL<<20),-real(0xd3acdf03195LL<<19),
+      real(0x1195b2a1cffLL<<22),real(0xca9586e4a280000LL),
+      -real(0x486f0b6e413LL<<20),real(0x7ca2ce8a83fLL<<19),
+      -real(610236546241LL<<21),-real(717677267559LL<<19),
+      real(159176229583LL<<20),real(291633515411LL<<19),
+      -real(0x110150274e88000LL),reale(408574,0xe11d1e092eda9LL),
       // C4[9], coeff of eps^12, polynomial in n of order 11
-      real(0x8611fdfe7cLL<<20),-real(0x1c4d2ef1e48LL<<20),
-      real(0x40757ac5854LL<<20),-real(0x636fb3adbaLL<<24),
-      real(0x60fcc033fecLL<<20),-real(0x28ce9785af8LL<<20),
-      -real(0x1fc3eed6a3cLL<<20),real(0x3fd2e7b543LL<<24),
-      -real(0x2dbfcefc5a4LL<<20),real(0xfbe0aa2258LL<<20),
-      -real(0x1aa48ff1ccLL<<20),-real(0x3ee3b308260000LL),
-      reale(408574LL,0xe11d1e092eda9LL),
+      real(143956869023LL<<22),-real(243108013001LL<<23),
+      real(0x101d5eb1615LL<<22),-real(213537904349LL<<25),
+      real(0x183f300cffbLL<<22),-real(350529456991LL<<23),
+      -real(545724783247LL<<22),real(274121340227LL<<24),
+      -real(785966166377LL<<22),real(135225754699LL<<23),
+      -real(28607511667LL<<22),-real(0x3ee3b308260000LL),
+      reale(408574,0xe11d1e092eda9LL),
       // C4[9], coeff of eps^11, polynomial in n of order 12
-      real(0x12c71299eLL<<20),-real(0xc4ddd05ba80000LL),
-      real(0x46ff5325c9LL<<20),-real(0x1091808b66b80000LL),
-      real(0x2ad630e8614LL<<20),-real(0x4e92a508ecc80000LL),
-      real(0x6510e717cdfLL<<20),-real(0x54aeb3c027d80000LL),
-      real(0x20abba2fc8aLL<<20),real(0x11cde6b42e180000LL),
-      -real(0x22ba072788bLL<<20),real(0x160a1506db080000LL),
-      -real(0x59b3a2379f58000LL),reale(408574LL,0xe11d1e092eda9LL),
+      real(2520290511LL<<21),-real(0xc4ddd05ba80000LL),
+      real(304931349961LL<<20),-real(0x21230116cd7LL<<19),
+      real(735928623493LL<<22),-real(0x9d254a11d99LL<<19),
+      real(0x6510e717cdfLL<<20),-real(0xa95d67804fbLL<<19),
+      real(0x1055dd17e45LL<<21),real(0x239bcd685c3LL<<19),
+      -real(0x22ba072788bLL<<20),real(0x2c142a0db61LL<<19),
+      -real(0x59b3a2379f58000LL),reale(408574,0xe11d1e092eda9LL),
       // C4[9], coeff of eps^10, polynomial in n of order 13
-      -real(58786LL<<20),-real(0x22a868LL<<20),real(0x4eac072LL<<20),
-      -real(0x37a6160cLL<<20),real(0x15ee16526LL<<20),-real(0x5aee1acfLL<<24),
-      real(0x10b01e88baLL<<20),-real(0x23f7de64d4LL<<20),
-      real(0x39a4332b6eLL<<20),-real(0x443f573578LL<<20),
-      real(0x3a056acd82LL<<20),-real(0x215eb2969cLL<<20),
-      real(0xb8d166f36LL<<20),-real(0x1ce0b816070000LL),
-      reale(19455LL,0xf256b84994845LL),
+      -real(29393LL<<21),-real(283917LL<<23),real(41246777LL<<21),
+      -real(233407875LL<<22),real(2943398547LL<<21),-real(1525553871LL<<24),
+      real(35837133917LL<<21),-real(38620600629LL<<22),
+      real(123783976375LL<<21),-real(36640057007LL<<23),
+      real(124599494337LL<<21),-real(35830670759LL<<22),
+      real(24805848987LL<<21),-real(0x1ce0b816070000LL),
+      reale(19455,0xf256b84994845LL),
       // C4[9], coeff of eps^9, polynomial in n of order 14
-      -real(1615LL<<20),-real(0x396880000LL),-real(212534LL<<20),
-      -real(0x85c63380000LL),real(0x146d5b23LL<<20),-real(0xfb41142e80000LL),
-      real(0x6ce077adcLL<<20),-real(0x1f78e2983980000LL),
-      real(0x68e848a615LL<<20),-real(0x10644b59f3480000LL),
-      real(0x1f453d0a1eeLL<<20),-real(0x2d579881dff80000LL),
-      real(0x3002653e387LL<<20),-real(0x1f95c95817a80000LL),
-      real(0x914a9e2ed338000LL),reale(408574LL,0xe11d1e092eda9LL),
+      -real(1615<<20),-real(29393LL<<19),-real(106267LL<<21),
+      -real(17534055LL<<19),real(342711075LL<<20),-real(8430692445LL<<19),
+      real(7306600119LL<<22),-real(270344204403LL<<19),
+      real(450573674005LL<<20),-real(0x20c896b3e69LL<<19),
+      real(0xfa29e850f7LL<<21),-real(0x5aaf3103bffLL<<19),
+      real(0x3002653e387LL<<20),-real(0x3f2b92b02f5LL<<19),
+      real(0x914a9e2ed338000LL),reale(408574,0xe11d1e092eda9LL),
       // C4[10], coeff of eps^23, polynomial in n of order 0
-      real(274LL<<20),real(0x8757c14b789bLL),
+      real(137<<21),real(0x8757c14b789bLL),
       // C4[10], coeff of eps^22, polynomial in n of order 1
-      -real(0x1196b3LL<<20),-real(0xcdcede0000LL),real(0x9e817610332f06fLL),
+      -real(1152691LL<<20),-real(6743919LL<<17),real(0x9e817610332f06fLL),
       // C4[10], coeff of eps^21, polynomial in n of order 2
-      real(0x2603b6b8LL<<20),-real(0x1b1fbe44LL<<20),real(0x35b1e4040000LL),
-      reale(5864LL,0xb6105765cc00bLL),
+      real(79722199LL<<23),-real(113766289LL<<22),real(225212673LL<<18),
+      reale(5864,0xb6105765cc00bLL),
       // C4[10], coeff of eps^20, polynomial in n of order 3
-      real(0x1e33a6057eLL<<20),-real(0x21167e86cLL<<20),
-      -real(0xeff2cdd6LL<<20),-real(0x123578c1740000LL),
-      reale(451582LL,0xc2ea499e5c34fLL),
+      real(64857768639LL<<21),-real(2220489243LL<<22),-real(2012833515LL<<21),
+      -real(19551629405LL<<18),reale(451582,0xc2ea499e5c34fLL),
       // C4[10], coeff of eps^19, polynomial in n of order 4
-      real(0x271f287fLL<<24),real(0xf600a494LL<<20),real(0x16c0b9cef8LL<<20),
-      -real(0xbe2389024LL<<20),real(0x11a4af29a40000LL),
-      reale(451582LL,0xc2ea499e5c34fLL),
+      real(656353407LL<<24),real(1031809317LL<<22),real(12215335391LL<<23),
+      -real(12759999497LL<<22),real(18944346729LL<<18),
+      reale(451582,0xc2ea499e5c34fLL),
       // C4[10], coeff of eps^18, polynomial in n of order 5
-      -real(0xea32c51c9LL<<20),-real(0x4d6b22d794LL<<20),
-      real(0x2863098f21LL<<20),real(0x3eb4014b6LL<<20),-real(0x3d11ab75LL<<20),
-      -real(0x267d9727d20000LL),reale(451582LL,0xc2ea499e5c34fLL),
+      -real(62867132873LL<<20),-real(83127481829LL<<22),
+      real(173460262689LL<<20),real(8415873627LL<<21),-real(1024568181LL<<20),
+      -real(82657907689LL<<17),reale(451582,0xc2ea499e5c34fLL),
       // C4[10], coeff of eps^17, polynomial in n of order 6
-      real(0x1042c27c41LL<<24),-real(0x577f944588LL<<20),
-      -real(0x268f031eaLL<<24),-real(0x13c26a3db8LL<<20),
-      real(0x2ff20d26bLL<<24),-real(0x11540a97e8LL<<20),
-      real(0xfe28858a80000LL),reale(451582LL,0xc2ea499e5c34fLL),
+      real(69839518785LL<<24),-real(46975322289LL<<23),-real(5175253237LL<<25),
+      -real(10608265143LL<<23),real(12870275691LL<<24),-real(9303053053LL<<23),
+      real(8528136981LL<<19),reale(451582,0xc2ea499e5c34fLL),
       // C4[10], coeff of eps^16, polynomial in n of order 7
-      -real(0xbcd2f1d94LL<<20),real(0x160523aeb8LL<<20),
-      real(0x1643235e04LL<<20),-real(0x1a2a58ca3LL<<24),
-      real(0x3f66def9cLL<<20),real(0x28e5854e8LL<<20),real(0xb430db34LL<<20),
-      -real(0xcaee985680000LL),reale(64511LL,0xd2b3c15fc4079LL),
+      -real(12671764325LL<<22),real(11821938135LL<<23),real(23903917953LL<<22),
+      -real(7023725731LL<<24),real(4254825447LL<<22),real(1372261021LL<<23),
+      real(755775181LL<<22),-real(6809268397LL<<19),
+      reale(64511,0xd2b3c15fc4079LL),
       // C4[10], coeff of eps^15, polynomial in n of order 8
-      real(0x9db3395b4LL<<24),-real(0x9d7319ec68LL<<20),
-      real(0x2d4332da7LL<<24),real(0x170f6ac248LL<<20),-real(0x63f39826LL<<24),
-      -real(0x136411b108LL<<20),real(0xecea038dLL<<24),
-      -real(0x35a24d258LL<<20),real(0x4a8ec1980000LL),
-      reale(64511LL,0xd2b3c15fc4079LL),
+      real(10583074157LL<<26),-real(84530118029LL<<23),real(12150058407LL<<24),
+      real(12380362825LL<<23),-real(838454291LL<<25),-real(10410407457LL<<23),
+      real(3974759309LL<<24),-real(1799658059LL<<23),real(156358707LL<<19),
+      reale(64511,0xd2b3c15fc4079LL),
       // C4[10], coeff of eps^14, polynomial in n of order 9
-      -real(0xd6b297dd67LL<<20),real(0x629dad8e08LL<<20),
-      real(0x4cbffd5477LL<<20),-real(0xa54ccd42faLL<<20),
-      real(0x72d04d3dd5LL<<20),-real(0x1671c74cfcLL<<20),
-      -real(0xddab04a4dLL<<20),real(0x37935a302LL<<20),real(0x4f2336311LL<<20),
-      -real(0x233169f0960000LL),reale(64511LL,0xd2b3c15fc4079LL),
+      -real(922119298407LL<<20),real(52944024001LL<<23),
+      real(329638564983LL<<20),-real(354979062141LL<<21),
+      real(493120994773LL<<20),-real(24099541823LL<<22),
+      -real(59503561293LL<<20),real(7459230081LL<<21),real(21243323153LL<<20),
+      -real(75576440907LL<<17),reale(64511,0xd2b3c15fc4079LL),
       // C4[10], coeff of eps^13, polynomial in n of order 10
-      -real(0x2640ec7ff08LL<<20),real(0x49172ca078cLL<<20),
-      -real(0x60a332f31aLL<<24),real(0x4f6133ce734LL<<20),
-      -real(0x13c00fbdc38LL<<20),-real(0x29139b5a224LL<<20),
-      real(0x3ba48bedf3LL<<24),-real(0x26443e5f67cLL<<20),
-      real(0xc0b73ade98LL<<20),-real(0x100cb5f7d4LL<<20),
-      -real(0x3d5727afac0000LL),reale(451582LL,0xc2ea499e5c34fLL),
+      -real(328595996641LL<<23),real(0x1245cb281e3LL<<22),
+      -real(207527442829LL<<25),real(0x13d84cf39cdLL<<22),
+      -real(169653271431LL<<23),-real(705690429577LL<<22),
+      real(256163704307LL<<24),-real(657414782367LL<<22),
+      real(103463476179LL<<23),-real(17233182197LL<<22),
+      -real(65863805931LL<<18),reale(451582,0xc2ea499e5c34fLL),
       // C4[10], coeff of eps^12, polynomial in n of order 11
-      -real(0x1c2fcb0feaLL<<20),real(0x78cd035154LL<<20),
-      -real(0x16d0a12eceeLL<<20),real(0x32382092d1LL<<24),
-      -real(0x50f9872fef2LL<<20),real(0x5d34c6740ccLL<<20),
-      -real(0x457e5bc2bf6LL<<20),real(0x1415a511e88LL<<20),
-      real(0x15730500606LL<<20),-real(0x20401dde7bcLL<<20),
-      real(0x1361c2c3102LL<<20),-real(0x4d7d212a0a40000LL),
-      reale(451582LL,0xc2ea499e5c34fLL),
+      -real(60530460661LL<<21),real(129708905557LL<<22),
+      -real(783916037751LL<<21),real(215690023633LL<<24),
+      -real(0x287cc397f79LL<<21),real(0x174d319d033LL<<22),
+      -real(0x22bf2de15fbLL<<21),real(172524970961LL<<23),
+      real(736992166659LL<<21),-real(554058611183LL<<22),
+      real(665956259969LL<<21),-real(0x4d7d212a0a40000LL),
+      reale(451582,0xc2ea499e5c34fLL),
       // C4[10], coeff of eps^11, polynomial in n of order 12
-      -real(0x1dc61f3LL<<24),real(0x177c584b4LL<<20),-real(0xa68e4dda8LL<<20),
-      real(0x310ee42c7cLL<<20),-real(0xa5e7161a2LL<<24),
-      real(0x1a2ee772944LL<<20),-real(0x3250f74ee98LL<<20),
-      real(0x49d6b12a10cLL<<20),-real(0x51be070751LL<<24),
-      real(0x4214c5c39d4LL<<20),-real(0x24a245ec788LL<<20),
-      real(0xc5a70e199cLL<<20),-real(0x1e525ae3edc0000LL),
-      reale(451582LL,0xc2ea499e5c34fLL),
+      -real(31220211LL<<24),real(1576100141LL<<22),-real(5588687797LL<<23),
+      real(52675808031LL<<22),-real(22267080913LL<<25),
+      real(449824279121LL<<22),-real(432213499347LL<<23),
+      real(0x1275ac4a843LL<<22),-real(351080482641LL<<24),
+      real(0x10853170e75LL<<22),-real(314682628337LL<<23),
+      real(212227819111LL<<22),-real(520922828727LL<<18),
+      reale(451582,0xc2ea499e5c34fLL),
       // C4[10], coeff of eps^10, polynomial in n of order 13
-      real(46189LL<<20),real(0x1fe0ccLL<<20),-real(0x55d6a55LL<<20),
-      real(0x4928642aLL<<20),-real(0x2363dbf97LL<<20),real(0xb840ca888LL<<20),
-      -real(0x2baa055459LL<<20),real(0x7de38a60e6LL<<20),
-      -real(0x11a7161219bLL<<20),real(0x1f11977c044LL<<20),
-      -real(0x2a7db4d305dLL<<20),real(0x2b3c8b159a2LL<<20),
+      real(46189LL<<20),real(522291LL<<22),-real(90008149LL<<20),
+      real(613691925LL<<21),-real(9499950999LL<<20),real(6182507793LL<<23),
+      -real(187536069721LL<<20),real(270344204403LL<<21),
+      -real(0x11a7161219bLL<<20),real(533756506129LL<<22),
+      -real(0x2a7db4d305dLL<<20),real(0x159e458acd1LL<<21),
       -real(0x1bcb7dfb99fLL<<20),real(0x7e5725605ea0000LL),
-      reale(451582LL,0xc2ea499e5c34fLL),
+      reale(451582,0xc2ea499e5c34fLL),
       // C4[11], coeff of eps^23, polynomial in n of order 0
-      -real(14618LL<<20),real(0x2c95e8ad321065LL),
+      -real(7309LL<<21),real(0x2c95e8ad321065LL),
       // C4[11], coeff of eps^22, polynomial in n of order 1
-      -real(475508LL<<28),real(0xcc9558LL<<20),real(0x7759dcb5574d50a7LL),
+      -real(118877LL<<30),real(1675947LL<<23),real(0x7759dcb5574d50a7LL),
       // C4[11], coeff of eps^21, polynomial in n of order 2
-      -real(0x8af151LL<<24),-real(0x17c4bd28LL<<20),-real(0x2ab725b4c0000LL),
-      reale(70655LL,0xce6359e2ca823LL),
+      -real(9105745LL<<24),-real(49846181LL<<23),-real(2866583251LL<<18),
+      reale(70655,0xce6359e2ca823LL),
       // C4[11], coeff of eps^20, polynomial in n of order 3
-      -real(0x1c84ad12LL<<24),real(0x167f4f58cLL<<24),-real(0xa6243226LL<<24),
-      real(0xd66f0f6680000LL),reale(494590LL,0xa4b77533898f5LL),
+      -real(239228553LL<<25),real(1509768547LL<<26),-real(1393694995LL<<25),
+      real(7195205325LL<<19),reale(494590,0xa4b77533898f5LL),
       // C4[11], coeff of eps^19, polynomial in n of order 4
-      -real(0x4e628a606LL<<24),real(0x1f0426c698LL<<20),real(0x5a0f914dLL<<24),
-      real(0x6ca5b688LL<<20),-real(0x25d6eb7f040000LL),
-      reale(494590LL,0xa4b77533898f5LL),
+      -real(10520646403LL<<25),real(16651704531LL<<23),real(1510969677LL<<24),
+      real(227849937LL<<23),-real(40629886913LL<<18),
+      reale(494590,0xa4b77533898f5LL),
       // C4[11], coeff of eps^18, polynomial in n of order 5
-      -real(0x2bf157d5LL<<28),-real(0x2808e738LL<<28),-real(0x1ac7b8a3LL<<28),
-      real(0x2cec47ecLL<<28),-real(0xe84ff89LL<<28),real(0xa955cbd6LL<<20),
-      reale(494590LL,0xa4b77533898f5LL),
+      -real(737236949LL<<28),-real(83959015LL<<31),-real(449296547LL<<28),
+      real(188420603LL<<30),-real(243597193LL<<28),real(1420486123LL<<21),
+      reale(494590,0xa4b77533898f5LL),
       // C4[11], coeff of eps^17, polynomial in n of order 6
-      real(0xd6416fd2LL<<24),real(0x1a7ce273bLL<<24),-real(0x164414e34LL<<24),
-      real(0x18514f7dLL<<24),real(0x26a24e46LL<<24),real(0xde21c9fLL<<24),
-      -real(0xbfafa69580000LL),reale(70655LL,0xce6359e2ca823LL),
+      real(1797306345LL<<25),real(7110272827LL<<24),-real(1494242189LL<<26),
+      real(407981949LL<<24),real(324085539LL<<25),real(232922271LL<<24),
+      -real(6431919403LL<<19),reale(70655,0xce6359e2ca823LL),
       // C4[11], coeff of eps^16, polynomial in n of order 7
-      -real(0x37574f34acLL<<24),real(0x84fafcb78LL<<24),
-      real(0xb233d7bfcLL<<24),-real(0x6f2a193LL<<28),-real(0x89bedbe1cLL<<24),
-      real(0x5a25b4328LL<<24),-real(0x12508eb74LL<<24),-real(0x31e34911LL<<20),
-      reale(494590LL,0xa4b77533898f5LL),
+      -real(59422002475LL<<26),real(4462082415LL<<27),real(11958968063LL<<26),
+      -real(116564371LL<<28),-real(9243946887LL<<26),real(3024840805LL<<27),
+      -real(1229077213LL<<26),-real(836978961LL<<20),
+      reale(494590,0xa4b77533898f5LL),
       // C4[11], coeff of eps^15, polynomial in n of order 8
-      real(0x2b3869c18LL<<24),real(0x6bde35689LL<<24),-real(0x9bd70f74eLL<<24),
-      real(0x59f59768bLL<<24),-real(0x989546f4LL<<24),-real(0xe250b353LL<<24),
-      real(0x1ea69be6LL<<24),real(0x4ec2b9afLL<<24),-real(0x1ff3696ed80000LL),
-      reale(70655LL,0xce6359e2ca823LL),
+      real(1450234755LL<<27),real(28955596425LL<<24),-real(20916501415LL<<25),
+      real(24148276875LL<<24),-real(639979965LL<<26),-real(3796939603LL<<24),
+      real(257117683LL<<25),real(1321384367LL<<24),-real(17153469915LL<<19),
+      reale(70655,0xce6359e2ca823LL),
       // C4[11], coeff of eps^14, polynomial in n of order 9
-      real(0xb24820b1LL<<28),-real(0xcdaa7f9LL<<32),real(0x8d98303fLL<<28),
-      -real(0x715b264LL<<28),-real(0x69a997fbLL<<28),real(0x7cf953f8LL<<28),
-      -real(0x492e000dLL<<28),real(0x1532a074LL<<28),-real(0x1477807LL<<28),
-      -real(0x84ab32d6LL<<20),reale(70655LL,0xce6359e2ca823LL),
+      real(2991071409LL<<28),-real(215656441LL<<32),real(2375561279LL<<28),
+      -real(29715609LL<<30),-real(1772722171LL<<28),real(262089343LL<<31),
+      -real(1227751437LL<<28),real(88909853LL<<30),-real(21460999LL<<28),
+      -real(1112906091LL<<21),reale(70655,0xce6359e2ca823LL),
       // C4[11], coeff of eps^13, polynomial in n of order 10
-      real(0xb3c06cd6dLL<<24),-real(0x1cd91850ed8LL<<20),
-      real(0x37ca1889e4LL<<24),-real(0x50c8876bea8LL<<20),
-      real(0x546435a5dbLL<<24),-real(0x3839a481d78LL<<20),
-      real(0xa846bfd72LL<<24),real(0x1777a57c6b8LL<<20),
-      -real(0x1dd3659b37LL<<24),real(0x112d2a31fe8LL<<20),
-      -real(0x43bae67ca340000LL),reale(494590LL,0xa4b77533898f5LL),
+      real(48251719021LL<<24),-real(247802667483LL<<23),
+      real(59903451769LL<<26),-real(693923403733LL<<23),
+      real(362458490331LL<<24),-real(482970502063LL<<23),
+      real(22585671353LL<<25),real(201583163607LL<<23),
+      -real(128100703031LL<<24),real(147544368125LL<<23),
+      -real(0x43bae67ca340000LL),reale(494590,0xa4b77533898f5LL),
       // C4[11], coeff of eps^12, polynomial in n of order 11
-      real(0x3a2fdc86LL<<24),-real(0x133458534LL<<24),real(0x4983cdbc2LL<<24),
-      -real(0xd4d77511LL<<28),real(0x1dcdf50ddeLL<<24),
-      -real(0x342b8eadecLL<<24),real(0x472c5d4b1aLL<<24),
-      -real(0x4a78d3d788LL<<24),real(0x39b15b6bb6LL<<24),
-      -real(0x1f0000c9a4LL<<24),real(0xa393147f2LL<<24),
-      -real(0x18b4e1c33380000LL),reale(494590LL,0xa4b77533898f5LL),
+      real(488107587LL<<25),-real(1288790349LL<<26),real(9866997217LL<<25),
+      -real(3570890001LL<<28),real(64004720367LL<<25),-real(56017267579LL<<26),
+      real(152843494797LL<<25),-real(39981841137LL<<27),
+      real(123894347227LL<<25),-real(33286009449LL<<26),
+      real(21954601977LL<<25),-real(212227819111LL<<19),
+      reale(494590,0xa4b77533898f5LL),
       // C4[11], coeff of eps^11, polynomial in n of order 12
-      real(0x1671deLL<<24),-real(0x1500c668LL<<20),real(0xb37afc9LL<<24),
-      -real(0x40e6c22f8LL<<20),real(0x113a17194LL<<24),
-      -real(0x382ee86c88LL<<20),real(0x90789ecdfLL<<24),
-      -real(0x128f7f11918LL<<20),real(0x1e91fe774aLL<<24),
-      -real(0x27d2630dea8LL<<20),real(0x2730923e75LL<<24),
-      -real(0x18b4e1c3338LL<<20),real(0x6f2df7ee67c0000LL),
-      reale(494590LL,0xa4b77533898f5LL),
+      real(735471LL<<25),-real(44046541LL<<23),real(188198857LL<<24),
+      -real(2177729631LL<<23),real(1156078693LL<<26),-real(30163144081LL<<23),
+      real(38781185247LL<<24),-real(159433761571LL<<23),
+      real(65649195941LL<<25),-real(342066863061LL<<23),
+      real(168318615157LL<<24),-real(212227819111LL<<23),
+      real(0x6f2df7ee67c0000LL),reale(494590,0xa4b77533898f5LL),
       // C4[12], coeff of eps^23, polynomial in n of order 0
       real(173LL<<24),real(0x88d5e64011771LL),
       // C4[12], coeff of eps^22, polynomial in n of order 1
-      -real(163369LL<<28),-real(533806LL<<28),reale(14529LL,0xb09bccfe817bfLL),
+      -real(163369LL<<28),-real(266903LL<<29),reale(14529,0xb09bccfe817bfLL),
       // C4[12], coeff of eps^21, polynomial in n of order 2
-      real(0x3221baeLL<<28),-real(0x14bb46dLL<<28),real(0x1728fcfLL<<24),
-      reale(76799LL,0xca12f265d0fcdLL),
+      real(26283479LL<<29),-real(21738605LL<<28),real(24285135LL<<24),
+      reale(76799,0xca12f265d0fcdLL),
       // C4[12], coeff of eps^20, polynomial in n of order 3
-      real(0x16cedd0f7LL<<24),real(0x68f5252aLL<<24),real(0x100a803dLL<<24),
-      -real(0x24d58931aLL<<20),reale(537598LL,0x8684a0c8b6e9bLL),
+      real(6122492151LL<<24),real(880448149LL<<25),real(269123645LL<<24),
+      -real(4943792525LL<<21),reale(537598,0x8684a0c8b6e9bLL),
       // C4[12], coeff of eps^19, polynomial in n of order 4
-      -real(0x24c667a9LL<<28),-real(0x204f7245cLL<<24),real(0x29ae5e638LL<<24),
-      -real(0xc2f052f4LL<<24),real(0x6b6905bcLL<<20),
-      reale(537598LL,0x8684a0c8b6e9bLL),
+      -real(616982441LL<<28),-real(2168310039LL<<26),real(1398586567LL<<27),
+      -real(817632445LL<<26),real(450511215LL<<22),
+      reale(537598,0x8684a0c8b6e9bLL),
       // C4[12], coeff of eps^18, polynomial in n of order 5
-      real(0x1c800d54cLL<<24),-real(0x125e2539LL<<28),-real(0x431e66cLL<<24),
-      real(0x22c53a38LL<<24),real(0xfcf4ddcLL<<24),-real(0xb47cb7cLL<<24),
-      reale(76799LL,0xca12f265d0fcdLL),
+      real(1912616275LL<<26),-real(308159801LL<<28),-real(17594779LL<<26),
+      real(72918855LL<<27),real(66311031LL<<26),-real(47313631LL<<26),
+      reale(76799,0xca12f265d0fcdLL),
       // C4[12], coeff of eps^17, polynomial in n of order 6
-      real(0x45b00e8LL<<24),real(0x1879e031cLL<<24),real(0x380b7efLL<<28),
-      -real(0x135dac8bcLL<<24),real(0xb2b97ef8LL<<24),-real(0x20bc2b14LL<<24),
-      -real(0xea38f04LL<<20),reale(76799LL,0xca12f265d0fcdLL),
+      real(9134109LL<<27),real(1642561735LL<<26),real(58767343LL<<28),
+      -real(1299624495LL<<26),real(374812639LL<<27),-real(137300677LL<<26),
+      -real(61400001LL<<22),reale(76799,0xca12f265d0fcdLL),
       // C4[12], coeff of eps^16, polynomial in n of order 7
-      real(0x3701f1b322LL<<24),-real(0x3de4b7ca4cLL<<24),
-      real(0x1e0551a306LL<<24),-real(0x3ff2ae88LL<<24),
-      -real(0x5ea04db96LL<<24),real(0x4663a33cLL<<24),real(0x21c3a104eLL<<24),
-      -real(0xcbb56a5acLL<<20),reale(537598LL,0x8684a0c8b6e9bLL),
+      real(118127909265LL<<25),-real(66457563795LL<<26),
+      real(64469127555LL<<25),-real(134108625LL<<27),-real(12700511691LL<<25),
+      real(295233743LL<<26),real(4531750951LL<<25),-real(13670656363LL<<22),
+      reale(537598,0x8684a0c8b6e9bLL),
       // C4[12], coeff of eps^15, polynomial in n of order 8
-      -real(0x50e951d9eLL<<28),real(0x2dc21adf0cLL<<24),
-      real(0x9a9f67018LL<<24),-real(0x307f93b19cLL<<24),
-      real(0x3187e8171LL<<28),-real(0x1ad4690cc4LL<<24),
-      real(0x72d4f7c08LL<<24),-real(0x4284616cLL<<24),-real(0x360b8f27cLL<<20),
-      reale(537598LL,0x8684a0c8b6e9bLL),
+      -real(10859744975LL<<29),real(49132517315LL<<26),real(5188275715LL<<27),
+      -real(52074703975LL<<26),real(13295845745LL<<28),
+      -real(28808201009LL<<26),real(3853119361LL<<27),-real(278992987LL<<26),
+      -real(3626908831LL<<22),reale(537598,0x8684a0c8b6e9bLL),
       // C4[12], coeff of eps^14, polynomial in n of order 9
-      -real(0x4e6bc3424LL<<24),real(0x8833a59eLL<<28),-real(0xb3dd28c1cLL<<24),
-      real(0xac3fc9f68LL<<24),-real(0x667eb7414LL<<24),real(0x77b80cfLL<<28),
-      real(0x37cf913f4LL<<24),-real(0x3ef425588LL<<24),real(0x230a4ebfcLL<<24),
-      -real(0x88b062ecLL<<24),reale(76799LL,0xca12f265d0fcdLL),
+      -real(5262740745LL<<26),real(1142543055LL<<29),-real(12070462215LL<<26),
+      real(5779723245LL<<27),-real(6878321925LL<<26),real(125534415LL<<28),
+      real(3745400061LL<<26),-real(2112375473LL<<27),real(2351512319LL<<26),
+      -real(573315259LL<<26),reale(76799,0xca12f265d0fcdLL),
       // C4[12], coeff of eps^13, polynomial in n of order 10
-      -real(0xa4a255b8LL<<24),real(0x2198941c4LL<<24),-real(0x55f3d536LL<<28),
-      real(0xaea2f0a7cLL<<24),-real(0x11ad0f2508LL<<24),
-      real(0x16acb091b4LL<<24),-real(0x169cc955bLL<<28),
-      real(0x10e39cbc6cLL<<24),-real(0x8d594f058LL<<24),
-      real(0x2dbb02fa4LL<<24),-real(0x6d0cb854cLL<<20),
-      reale(179199LL,0x822c35983cf89LL),
+      -real(345262775LL<<27),real(2254590065LL<<26),-real(721021595LL<<29),
+      real(11719656095LL<<26),-real(9489736865LL<<27),real(24346633325LL<<26),
+      -real(6069982555LL<<28),real(18134544155LL<<26),-real(4742880779LL<<27),
+      real(3068922857LL<<26),-real(7318200659LL<<22),
+      reale(179199,0x822c35983cf89LL),
       // C4[12], coeff of eps^12, polynomial in n of order 11
-      -real(0x37b8e9dLL<<24),real(0x16298b8aLL<<24),-real(0x6829a96fLL<<24),
-      real(0x17ac60b08LL<<24),-real(0x448421b01LL<<24),real(0xa08605c86LL<<24),
-      -real(0x132e21a1d3LL<<24),real(0x1de177c384LL<<24),
-      -real(0x2559d5b465LL<<24),real(0x23ba1a5382LL<<24),
-      -real(0x1626957137LL<<24),real(0x62d3870cceLL<<20),
-      reale(537598LL,0x8684a0c8b6e9bLL),
+      -real(58429085LL<<24),real(185910725LL<<25),-real(1747560815LL<<24),
+      real(794345825LL<<27),-real(18392161025LL<<24),real(21545102915LL<<25),
+      -real(82378334675LL<<24),real(32084193505LL<<26),
+      -real(160420967525LL<<24),real(76723071425LL<<25),
+      -real(95136608567LL<<24),real(212227819111LL<<21),
+      reale(537598,0x8684a0c8b6e9bLL),
       // C4[13], coeff of eps^23, polynomial in n of order 0
       -real(34717LL<<24),real(0x4013d857859e5adLL),
       // C4[13], coeff of eps^22, polynomial in n of order 1
-      -real(211348LL<<28),real(202566LL<<24),real(0x39b1009e5dec691dLL),
+      -real(52837LL<<30),real(101283LL<<25),real(0x39b1009e5dec691dLL),
       // C4[13], coeff of eps^21, polynomial in n of order 2
-      real(0x6f0d556LL<<28),real(0x17e5b6fLL<<28),-real(0x239e6b67LL<<24),
-      reale(580606LL,0x6851cc5de4441LL),
+      real(58223275LL<<29),real(25058159LL<<28),-real(597584743LL<<24),
+      reale(580606,0x6851cc5de4441LL),
       // C4[13], coeff of eps^20, polynomial in n of order 3
-      -real(0x2464749LL<<32),real(0x26669d6LL<<32),-real(0xa3d513LL<<32),
-      real(0x3def9d8LL<<24),reale(580606LL,0x6851cc5de4441LL),
+      -real(38160201LL<<32),real(20133099LL<<33),-real(10736915LL<<32),
+      real(8118075LL<<27),reale(580606,0x6851cc5de4441LL),
       // C4[13], coeff of eps^19, polynomial in n of order 4
-      -real(0xeb80f55LL<<28),-real(0x1858908cLL<<24),real(0x1e2afdd8LL<<24),
-      real(0x112cd7fcLL<<24),-real(0xa9ad115cLL<<20),
-      reale(82943LL,0xc5c28ae8d7777LL),
+      -real(246943573LL<<28),-real(102114339LL<<26),real(63266747LL<<27),
+      real(72037887LL<<26),-real(711672919LL<<22),
+      reale(82943,0xc5c28ae8d7777LL),
       // C4[13], coeff of eps^18, polynomial in n of order 5
-      real(0x159a60cfLL<<28),real(0x721fec4LL<<28),-real(0x12aa2317LL<<28),
-      real(0x9ad4f32LL<<28),-real(0x199ce6dLL<<28),-real(0x13522ba8LL<<20),
-      reale(82943LL,0xc5c28ae8d7777LL),
+      real(362438863LL<<28),real(29917105LL<<30),-real(313139991LL<<28),
+      real(81176473LL<<29),-real(26857069LL<<28),-real(40519029LL<<23),
+      reale(82943,0xc5c28ae8d7777LL),
       // C4[13], coeff of eps^17, polynomial in n of order 6
-      -real(0x7cff45cc8LL<<24),real(0x32d4ac134LL<<24),real(0x57cb65dLL<<28),
-      -real(0xc68d9d14LL<<24),-real(0x6973598LL<<24),real(0x4ada9e24LL<<24),
-      -real(0x1a98e3004LL<<20),reale(82943LL,0xc5c28ae8d7777LL),
+      -real(4194208665LL<<27),real(3411193933LL<<26),real(92059229LL<<28),
+      -real(832792389LL<<26),-real(13821619LL<<27),real(313960329LL<<26),
+      -real(1784908801LL<<22),reale(82943,0xc5c28ae8d7777LL),
       // C4[13], coeff of eps^16, polynomial in n of order 7
-      real(0x1f56ae64eLL<<28),real(0x132b344d4LL<<28),-real(0x30d2fad16LL<<28),
-      real(0x2c89c35f8LL<<28),-real(0x168935c9aLL<<28),real(0x5932509cLL<<28),
-      -real(0xe61cfeLL<<28),-real(0x31e34911LL<<24),
-      reale(580606LL,0x6851cc5de4441LL),
+      real(4206195495LL<<29),real(1286394165LL<<30),-real(6553065099LL<<29),
+      real(1494451903LL<<31),-real(3024727629LL<<29),real(374117415LL<<30),
+      -real(7540351LL<<29),-real(836978961LL<<24),
+      reale(580606,0x6851cc5de4441LL),
       // C4[13], coeff of eps^15, polynomial in n of order 8
-      real(0x3dcb4a886LL<<28),-real(0x4b489ee77cLL<<24),
-      real(0x42904411c8LL<<24),-real(0x232f8a41b4LL<<24),
-      -real(0x2305ff7dLL<<28),real(0x18aab34994LL<<24),
-      -real(0x196f7c6368LL<<24),real(0xdc5682b5cLL<<24),
-      -real(0x354402037cLL<<20),reale(580606LL,0x6851cc5de4441LL),
+      real(8293864515LL<<29),-real(80835230175LL<<26),real(35736027705LL<<27),
+      -real(37780361325LL<<26),-real(587595645LL<<28),real(26485772901LL<<26),
+      -real(13655575661LL<<27),real(14786628311LL<<26),
+      -real(57193562335LL<<22),reale(580606,0x6851cc5de4441LL),
       // C4[13], coeff of eps^14, polynomial in n of order 9
-      real(0x818a2ec5LL<<28),-real(0x12b6c5f08LL<<28),real(0x230938ccbLL<<28),
-      -real(0x351e2e0f6LL<<28),real(0x40a325c81LL<<28),
-      -real(0x3dd759604LL<<28),real(0x2cbf53447LL<<28),
-      -real(0x16dd817d2LL<<28),real(0x7467aa7dLL<<28),
-      -real(0x1126211dd8LL<<20),reale(580606LL,0x6851cc5de4441LL),
+      real(2173316805LL<<28),-real(627936225LL<<31),real(9404910795LL<<28),
+      -real(7129362555LL<<29),real(17350941825LL<<28),-real(4150093185LL<<30),
+      real(12011779143LL<<28),-real(3068922857LL<<29),real(1952950909LL<<28),
+      -real(9206768571LL<<23),reale(580606,0x6851cc5de4441LL),
       // C4[13], coeff of eps^13, polynomial in n of order 10
-      real(0x25fe13c8LL<<24),-real(0x9850ba5cLL<<24),real(0x1e97df6aLL<<28),
-      -real(0x504eaa764LL<<24),real(0xae1c91d78LL<<24),
-      -real(0x139186d8ecLL<<24),real(0x1d12b9b75LL<<28),
-      -real(0x2313cf5ff4LL<<24),real(0x20bd27f328LL<<24),
-      -real(0x1401d14d7cLL<<24),real(0x589a55c4dcLL<<20),
-      reale(580606LL,0x6851cc5de4441LL),
+      real(79676025LL<<27),-real(638856855LL<<26),real(256634805LL<<29),
+      -real(5389330905LL<<26),real(5842215855LL<<27),-real(21011478075LL<<26),
+      real(7804263285LL<<28),-real(37664053245LL<<26),real(17576558181LL<<27),
+      -real(21482459999LL<<26),real(95136608567LL<<22),
+      reale(580606,0x6851cc5de4441LL),
       // C4[14], coeff of eps^23, polynomial in n of order 0
-      real(3464LL<<24),real(0x16f0fb486be35c9LL),
+      real(433LL<<27),real(0x16f0fb486be35c9LL),
       // C4[14], coeff of eps^22, polynomial in n of order 1
-      real(0x1ca55aLL<<28),-real(0x2045e4cLL<<24),
-      reale(36683LL,0x318959e11f277LL),
+      real(938669LL<<29),-real(8460179LL<<26),reale(36683,0x318959e11f277LL),
       // C4[14], coeff of eps^21, polynomial in n of order 2
-      real(0x2120deLL<<32),-real(531601LL<<32),real(109557LL<<28),
-      reale(36683LL,0x318959e11f277LL),
+      real(1085551LL<<33),-real(531601LL<<32),real(109557LL<<28),
+      reale(36683,0x318959e11f277LL),
       // C4[14], coeff of eps^20, polynomial in n of order 3
-      -real(0x10a43e28LL<<28),real(0xb17829LL<<32),real(0x7eabb48LL<<28),
-      -real(0x45c00a9LL<<28),reale(623614LL,0x4a1ef7f3119e7LL),
+      -real(34899909LL<<31),real(11630633LL<<32),real(16602985LL<<31),
+      -real(73138345LL<<28),reale(623614,0x4a1ef7f3119e7LL),
       // C4[14], coeff of eps^19, polynomial in n of order 4
-      real(0x9eed74LL<<32),-real(0x11ba229LL<<32),real(0x8618baLL<<32),
-      -real(0x140563LL<<32),-real(0x161c61LL<<28),
-      reale(89087LL,0xc172236bddf21LL),
+      real(2603869LL<<34),-real(18588201LL<<32),real(4394077LL<<33),
+      -real(1312099LL<<32),-real(1449057LL<<28),reale(89087,0xc172236bddf21LL),
       // C4[14], coeff of eps^18, polynomial in n of order 5
-      real(0x244e10b28LL<<24),real(0x96e2042LL<<28),-real(0xb152f2e8LL<<24),
-      -real(0x13d4edfLL<<28),real(0x481c9f08LL<<24),-real(0x1864aaafLL<<24),
-      reale(89087LL,0xc172236bddf21LL),
+      real(1218191717LL<<27),real(79106081LL<<29),-real(371875421LL<<27),
+      -real(20795103LL<<28),real(151229409LL<<27),-real(409250479LL<<24),
+      reale(89087,0xc172236bddf21LL),
       // C4[14], coeff of eps^17, polynomial in n of order 6
-      real(0x3b7e4894LL<<28),-real(0x6d6c0f9aLL<<28),real(0x5b1f61b8LL<<28),
-      -real(0x2b621ef6LL<<28),real(0x9eb72dcLL<<28),real(0x300baeLL<<28),
-      -real(0x68c8a16LL<<24),reale(89087LL,0xc172236bddf21LL),
+      real(249532965LL<<30),-real(917899213LL<<29),real(191097911LL<<31),
+      -real(363925371LL<<29),real(41606327LL<<30),real(1574359LL<<29),
+      -real(54936843LL<<25),reale(89087,0xc172236bddf21LL),
       // C4[14], coeff of eps^16, polynomial in n of order 7
-      -real(0x4707eab9dLL<<28),real(0x3a445131eLL<<28),
-      -real(0x1b0e43927LL<<28),-real(0x6498a9ecLL<<28),real(0x1875e934fLL<<28),
-      -real(0x178373ef6LL<<28),real(0xc71a15c5LL<<28),-real(0x2fcf2605aLL<<24),
-      reale(623614LL,0x4a1ef7f3119e7LL),
+      -real(19067218845LL<<28),real(7820446095LL<<29),-real(7262714151LL<<28),
+      -real(421931643LL<<30),real(6566089551LL<<28),-real(3155926907LL<<29),
+      real(3340375493LL<<28),-real(6416838701LL<<25),
+      reale(623614,0x4a1ef7f3119e7LL),
       // C4[14], coeff of eps^15, polynomial in n of order 8
-      -real(0x150a734fLL<<32),real(0x24bdd9aeeLL<<28),-real(0x34a1435b4LL<<28),
-      real(0x3d2daa4aaLL<<28),-real(0x38737aa78LL<<28),real(0x27ba57866LL<<28),
-      -real(0x13e34173cLL<<28),real(0x63c69222LL<<28),-real(0xe8cf54faLL<<24),
-      reale(623614LL,0x4a1ef7f3119e7LL),
+      -real(353006415LL<<32),real(4931374455LL<<29),-real(3531935085LL<<30),
+      real(8211223125LL<<29),-real(1894184271LL<<31),real(5332188211LL<<29),
+      -real(1334642127LL<<30),real(836978961LL<<29),-real(1952950909LL<<25),
+      reale(623614,0x4a1ef7f3119e7LL),
       // C4[14], coeff of eps^14, polynomial in n of order 9
-      -real(0xd0075fc8LL<<24),real(0x25c0dd3cLL<<28),-real(0x5b54718b8LL<<24),
-      real(0xb9680eedLL<<28),-real(0x13c5e421a8LL<<24),real(0x1c32b269eLL<<28),
-      -real(0x20fde01a98LL<<24),real(0x1e23fc24fLL<<28),
-      -real(0x123032a388LL<<24),real(0x50074535fLL<<24),
-      reale(623614LL,0x4a1ef7f3119e7LL),
+      -real(436268025LL<<27),real(158349135LL<<30),-real(3064521495LL<<27),
+      real(3110604525LL<<28),-real(10615555125LL<<27),real(3784676175LL<<29),
+      -real(17712284499LL<<27),real(8090796623LL<<28),-real(9764754545LL<<27),
+      real(21482459999LL<<24),reale(623614,0x4a1ef7f3119e7LL),
       // C4[15], coeff of eps^23, polynomial in n of order 0
-      -real(88024LL<<24),real(0x6a44bb11ad2310dLL),
+      -real(11003LL<<27),real(0x6a44bb11ad2310dLL),
       // C4[15], coeff of eps^22, polynomial in n of order 1
-      -real(28003LL<<36),real(14196LL<<28),reale(39213LL,0x11a47a8f8b3bdLL),
+      -real(28003LL<<36),real(3549LL<<30),reale(39213,0x11a47a8f8b3bdLL),
       // C4[15], coeff of eps^21, polynomial in n of order 2
-      real(4972LL<<36),real(4498LL<<36),-real(577583LL<<28),
-      reale(5601LL,0xddf2ecefef51bLL),
+      real(1243LL<<38),real(2249LL<<37),-real(577583LL<<28),
+      reale(5601,0xddf2ecefef51bLL),
       // C4[15], coeff of eps^20, polynomial in n of order 3
-      -real(28101LL<<40),real(195944LL<<36),-real(1645LL<<40),
-      -real(637602LL<<28),reale(39213LL,0x11a47a8f8b3bdLL),
+      -real(28101LL<<40),real(24493LL<<39),-real(1645LL<<40),
+      -real(318801LL<<29),reale(39213,0x11a47a8f8b3bdLL),
       // C4[15], coeff of eps^19, polynomial in n of order 4
-      real(0x52f54cLL<<36),-real(0x43dbd7LL<<36),-real(866586LL<<36),
-      real(0x1e41a3LL<<36),-real(0x9d2313dLL<<28),
-      reale(666622LL,0x2bec23883ef8dLL),
+      real(1359187LL<<38),-real(4447191LL<<36),-real(433293LL<<37),
+      real(1982883LL<<36),-real(164770109LL<<28),
+      reale(666622,0x2bec23883ef8dLL),
       // C4[15], coeff of eps^18, polynomial in n of order 5
-      -real(0x69663bLL<<36),real(0x515854LL<<36),-real(0x24a3fdLL<<36),
-      real(506378LL<<36),real(26273LL<<36),-real(0x60175cLL<<28),
-      reale(95231LL,0xbd21bbeee46cbLL),
+      -real(6907451LL<<36),real(1332757LL<<38),-real(2401277LL<<36),
+      real(253189LL<<37),real(26273LL<<36),-real(1574359LL<<30),
+      reale(95231,0xbd21bbeee46cbLL),
       // C4[15], coeff of eps^17, polynomial in n of order 6
-      real(0x73aa5faLL<<32),-real(0x2e45af9LL<<32),-real(0x15592c4LL<<32),
-      real(0x36c5691LL<<32),-real(0x31c2d02LL<<32),real(0x19d71fbLL<<32),
-      -real(0x62bf9592LL<<24),reale(95231LL,0xbd21bbeee46cbLL),
+      real(60642045LL<<33),-real(48519929LL<<32),-real(5596337LL<<34),
+      real(57431697LL<<32),-real(26089089LL<<33),real(27095547LL<<32),
+      -real(828361417LL<<25),reale(95231,0xbd21bbeee46cbLL),
       // C4[15], coeff of eps^16, polynomial in n of order 7
-      real(0xca51764LL<<32),-real(0x113d3e28LL<<32),real(0x1340502cLL<<32),
-      -real(0x1134cafLL<<36),real(0xbd0b734LL<<32),-real(0x5cee2b8LL<<32),
-      real(0x1cc39fcLL<<32),-real(0x4284616cLL<<24),
-      reale(222207LL,0x63f9612d6a52fLL),
+      real(53036505LL<<34),-real(36153285LL<<35),real(80745483LL<<34),
+      -real(18042031LL<<36),real(49556941LL<<34),-real(12180567LL<<35),
+      real(7540351LL<<34),-real(278992987LL<<26),
+      reale(222207,0x63f9612d6a52fLL),
       // C4[15], coeff of eps^15, polynomial in n of order 8
-      real(0x2cf5a88LL<<32),-real(0x657473dLL<<32),real(0xc2a0b46LL<<32),
-      -real(0x13d53ee7LL<<32),real(0x1b4a4a44LL<<32),-real(0x1f149bb1LL<<32),
-      real(0x1bdd82c2LL<<32),-real(0x10a1185bLL<<32),real(0x48c0ca8e2LL<<24),
-      reale(666622LL,0x2bec23883ef8dLL),
+      real(5892945LL<<35),-real(106383165LL<<32),real(102040995LL<<33),
+      -real(332742375LL<<32),real(114463377LL<<34),-real(521444273LL<<32),
+      real(233750881LL<<33),-real(278992987LL<<32),real(9764754545LL<<25),
+      reale(666622,0x2bec23883ef8dLL),
       // C4[16], coeff of eps^23, polynomial in n of order 0
-      -real(8LL<<28),real(0x5f43434b6401e1LL),
+      -real(1LL<<31),real(0x5f43434b6401e1LL),
       // C4[16], coeff of eps^22, polynomial in n of order 1
-      real(4571LL<<36),-real(33945LL<<32),reale(5963LL,0x471b5f51fec25LL),
+      real(4571LL<<36),-real(33945LL<<32),reale(5963,0x471b5f51fec25LL),
       // C4[16], coeff of eps^21, polynomial in n of order 2
-      real(24269LL<<36),-real(46648LL<<32),-real(93624LL<<28),
-      reale(5963LL,0x471b5f51fec25LL),
+      real(24269LL<<36),-real(5831LL<<35),-real(11703LL<<31),
+      reale(5963,0x471b5f51fec25LL),
       // C4[16], coeff of eps^20, polynomial in n of order 3
-      -real(224895LL<<36),-real(64554LL<<36),real(111531LL<<36),
-      -real(559300LL<<32),reale(41742LL,0xf1bf9b3df7503LL),
+      -real(224895LL<<36),-real(32277LL<<37),real(111531LL<<36),
+      -real(139825LL<<34),reale(41742,0xf1bf9b3df7503LL),
       // C4[16], coeff of eps^19, polynomial in n of order 4
-      real(0x1ddbcaLL<<36),-real(0xcc71e8LL<<32),real(162197LL<<36),
-      real(234248LL<<32),-real(0x2443f8LL<<28),
-      reale(41742LL,0xf1bf9b3df7503LL),
+      real(978405LL<<37),-real(1674813LL<<35),real(162197LL<<36),
+      real(29281LL<<35),-real(297087LL<<31),reale(41742,0xf1bf9b3df7503LL),
       // C4[16], coeff of eps^18, polynomial in n of order 5
-      -real(0xe8e70dLL<<36),-real(0xb96fb4LL<<36),real(0x1748505LL<<36),
-      -real(0x1431b3aLL<<36),real(0xa52337LL<<36),-real(0x27462ddLL<<32),
-      reale(709630LL,0xdb94f1d6c533LL),
+      -real(15263501LL<<36),-real(3038189LL<<38),real(24413445LL<<36),
+      -real(10587549LL<<37),real(10822455LL<<36),-real(41181917LL<<32),
+      reale(709630,0xdb94f1d6c533LL),
       // C4[16], coeff of eps^17, polynomial in n of order 6
-      -real(0x736f1dLL<<36),real(0x7c69888LL<<32),-real(0x6c179eLL<<36),
-      real(0x489ecb8LL<<32),-real(0x231fdfLL<<36),real(0xabf3e8LL<<32),
-      -real(0x18a7ad8LL<<28),reale(101375LL,0xb8d15471eae75LL),
+      -real(7565085LL<<36),real(16306961LL<<35),-real(3541967LL<<37),
+      real(9518487LL<<35),-real(2301919LL<<36),real(1408637LL<<35),
+      -real(3231579LL<<31),reale(101375,0xb8d15471eae75LL),
       // C4[16], coeff of eps^16, polynomial in n of order 7
-      -real(0x6e9fd12LL<<32),real(0xca0272cLL<<32),-real(0x13c7b4d6LL<<32),
-      real(0x1a5f9bc8LL<<32),-real(0x1d54411aLL<<32),real(0x19dc2e64LL<<32),
-      -real(0xf47ecdeLL<<32),real(0x4284616cLL<<28),
-      reale(709630LL,0xdb94f1d6c533LL),
+      -real(57998985LL<<33),real(52955595LL<<34),-real(165927531LL<<33),
+      real(55309177LL<<35),-real(246030477LL<<33),real(108465049LL<<34),
+      -real(128185967LL<<33),real(278992987LL<<30),
+      reale(709630,0xdb94f1d6c533LL),
       // C4[17], coeff of eps^23, polynomial in n of order 0
-      -real(8968LL<<28),real(0x6ef59e61feaaea7LL),
+      -real(1121LL<<31),real(0x6ef59e61feaaea7LL),
       // C4[17], coeff of eps^22, polynomial in n of order 1
-      -real(118LL<<36),-real(309LL<<32),real(0x14ce0db25fc00bf5LL),
+      -real(59LL<<37),-real(309LL<<32),real(0x14ce0db25fc00bf5LL),
       // C4[17], coeff of eps^21, polynomial in n of order 2
-      -real(10703LL<<36),real(243304LL<<32),-real(0x121118LL<<28),
-      reale(6324LL,0xb043d1b40e32fLL),
+      -real(10703LL<<36),real(30413LL<<35),-real(148003LL<<31),
+      reale(6324,0xb043d1b40e32fLL),
       // C4[17], coeff of eps^20, polynomial in n of order 3
-      -real(711108LL<<36),real(125720LL<<36),real(17108LL<<36),
-      -real(136206LL<<32),reale(44272LL,0xd1dabbec63649LL),
+      -real(177777LL<<38),real(15715LL<<39),real(4277LL<<38),
+      -real(68103LL<<33),reale(44272,0xd1dabbec63649LL),
       // C4[17], coeff of eps^19, polynomial in n of order 4
-      -real(815566LL<<36),real(0x152c178LL<<32),-real(0x11aa77LL<<36),
-      real(0x8e8828LL<<32),-real(0x21c8758LL<<28),
-      reale(44272LL,0xd1dabbec63649LL),
+      -real(407783LL<<37),real(2775087LL<<35),-real(1157751LL<<36),
+      real(1167621LL<<35),-real(4428011LL<<31),reale(44272,0xd1dabbec63649LL),
       // C4[17], coeff of eps^18, polynomial in n of order 5
-      real(0x303beeLL<<36),-real(0x28dbf8LL<<36),real(0x1aeb02LL<<36),
-      -real(840924LL<<36),real(254646LL<<36),-real(580027LL<<32),
-      reale(44272LL,0xd1dabbec63649LL),
+      real(1580535LL<<37),-real(334719LL<<39),real(882049LL<<37),
+      -real(210231LL<<38),real(127323LL<<37),-real(580027LL<<32),
+      reale(44272,0xd1dabbec63649LL),
       // C4[17], coeff of eps^17, polynomial in n of order 6
-      real(801009LL<<36),-real(0x127c0a8LL<<32),real(0x17f756LL<<36),
-      -real(0x1a17998LL<<32),real(0x16aa7bLL<<36),-real(0xd46988LL<<32),
-      real(0x39873f8LL<<28),reale(44272LL,0xd1dabbec63649LL),
+      real(801009LL<<36),-real(2422805LL<<35),real(785323LL<<37),
+      -real(3419955LL<<35),real(1485435LL<<36),-real(1740081LL<<35),
+      real(7540351LL<<31),reale(44272,0xd1dabbec63649LL),
       // C4[18], coeff of eps^23, polynomial in n of order 0
-      -real(712LL<<32),real(0x3351994085c8a607LL),
+      -real(89LL<<35),real(0x3351994085c8a607LL),
       // C4[18], coeff of eps^22, polynomial in n of order 1
-      real(763LL<<36),-real(3618LL<<32),real(0x15fe66403955fe03LL),
+      real(763LL<<36),-real(1809LL<<33),real(0x15fe66403955fe03LL),
       // C4[18], coeff of eps^21, polynomial in n of order 2
-      real(728LL<<36),real(140LL<<36),-real(940LL<<32),
+      real(91LL<<39),real(35LL<<38),-real(235LL<<34),
       real(0x15fe66403955fe03LL),
       // C4[18], coeff of eps^20, polynomial in n of order 3
-      real(0x1460d6LL<<36),-real(0x10745cLL<<36),real(537586LL<<36),
-      -real(0x1f0644LL<<32),reale(46802LL,0xb1f5dc9acf78fLL),
+      real(667755LL<<37),-real(269591LL<<38),real(268793LL<<37),
+      -real(508305LL<<34),reale(46802,0xb1f5dc9acf78fLL),
       // C4[18], coeff of eps^19, polynomial in n of order 4
-      -real(51319LL<<40),real(531468LL<<36),-real(250040LL<<36),
-      real(75012LL<<36),-real(169764LL<<32),reale(15600LL,0xe5fc9ede45285LL),
+      -real(51319LL<<40),real(132867LL<<38),-real(31255LL<<39),
+      real(18753LL<<38),-real(42441LL<<34),reale(15600,0xe5fc9ede45285LL),
       // C4[18], coeff of eps^18, polynomial in n of order 5
-      -real(0x124a17LL<<36),real(0x172094LL<<36),-real(0x18b441LL<<36),
-      real(0x152ccaLL<<36),-real(806379LL<<36),real(0x351a62LL<<32),
-      reale(46802LL,0xb1f5dc9acf78fLL),
+      -real(1198615LL<<36),real(378917LL<<38),-real(1619009LL<<36),
+      real(693861LL<<37),-real(806379LL<<36),real(1740081LL<<33),
+      reale(46802,0xb1f5dc9acf78fLL),
       // C4[19], coeff of eps^23, polynomial in n of order 0
-      -real(7864LL<<32),real(0x3617bd362c26857dLL),
+      -real(983LL<<35),real(0x3617bd362c26857dLL),
       // C4[19], coeff of eps^22, polynomial in n of order 1
-      real(4LL<<44),-real(378LL<<36),reale(2596LL,0x737a284739077LL),
+      real(1LL<<46),-real(189LL<<37),reale(2596,0x737a284739077LL),
       // C4[19], coeff of eps^21, polynomial in n of order 2
-      -real(473LL<<40),real(3736LL<<36),-real(14100LL<<32),
+      -real(473LL<<40),real(467LL<<39),-real(3525LL<<34),
       real(0x172ebece12ebf011LL),
       // C4[19], coeff of eps^20, polynomial in n of order 3
-      real(4758LL<<40),-real(2212LL<<40),real(658LL<<40),-real(23688LL<<32),
-      reale(2596LL,0x737a284739077LL),
+      real(2379LL<<41),-real(553LL<<42),real(329LL<<41),-real(2961LL<<35),
+      reale(2596,0x737a284739077LL),
       // C4[19], coeff of eps^19, polynomial in n of order 4
-      real(4810LL<<40),-real(80808LL<<36),real(4277LL<<40),-real(39480LL<<36),
-      real(169764LL<<32),reale(2596LL,0x737a284739077LL),
+      real(2405LL<<41),-real(10101LL<<39),real(4277LL<<40),-real(4935LL<<39),
+      real(42441LL<<34),reale(2596,0x737a284739077LL),
       // C4[20], coeff of eps^23, polynomial in n of order 0
-      -real(4LL<<36),real(0x1f5feefdb1f0c4fLL),
+      -real(1LL<<38),real(0x1f5feefdb1f0c4fLL),
       // C4[20], coeff of eps^22, polynomial in n of order 1
-      real(1516LL<<40),-real(357LL<<40),reale(2729LL,0x9a383778d2ed9LL),
+      real(379LL<<42),-real(357LL<<40),reale(2729,0x9a383778d2ed9LL),
       // C4[20], coeff of eps^21, polynomial in n of order 2
-      -real(1992LL<<40),real(588LL<<40),-real(1316LL<<36),
-      reale(2729LL,0x9a383778d2ed9LL),
+      -real(249LL<<43),real(147LL<<42),-real(329LL<<38),
+      reale(2729,0x9a383778d2ed9LL),
       // C4[20], coeff of eps^20, polynomial in n of order 3
-      -real(4797LL<<40),real(4018LL<<40),-real(2303LL<<40),real(9870LL<<36),
-      reale(2729LL,0x9a383778d2ed9LL),
+      -real(4797LL<<40),real(2009LL<<41),-real(2303LL<<40),real(4935LL<<37),
+      reale(2729,0x9a383778d2ed9LL),
       // C4[21], coeff of eps^23, polynomial in n of order 0
-      -real(5308LL<<36),reale(2862LL,0xc0f646aa6cd3bLL),
+      -real(1327LL<<38),reale(2862,0xc0f646aa6cd3bLL),
       // C4[21], coeff of eps^22, polynomial in n of order 1
-      real(11LL<<44),-real(392LL<<36),real(0x3ba4052178e24469LL),
+      real(11LL<<44),-real(49LL<<39),real(0x3ba4052178e24469LL),
       // C4[21], coeff of eps^21, polynomial in n of order 2
-      real(3784LL<<40),-real(2156LL<<40),real(9212LL<<36),
-      reale(2862LL,0xc0f646aa6cd3bLL),
+      real(473LL<<43),-real(539LL<<42),real(2303LL<<38),
+      reale(2862,0xc0f646aa6cd3bLL),
       // C4[22], coeff of eps^23, polynomial in n of order 0
-      -real(2LL<<40),real(0x5ac8f5f3162ebfdLL),
+      -real(1LL<<41),real(0x5ac8f5f3162ebfdLL),
       // C4[22], coeff of eps^22, polynomial in n of order 1
-      -real(184LL<<40),real(49LL<<40),real(0x1105ae1d9428c3f7LL),
+      -real(23LL<<43),real(49LL<<40),real(0x1105ae1d9428c3f7LL),
       // C4[23], coeff of eps^23, polynomial in n of order 0
-      real(2LL<<40),real(0xc5e28ed2c935abLL),
-    };
+      real(1LL<<41),real(0xc5e28ed2c935abLL),
+    };  // count = 2900
 #elif GEOGRAPHICLIB_GEODESICEXACT_ORDER == 27
     static const real coeff[] = {
       // C4[0], coeff of eps^26, polynomial in n of order 0
-      real(4654LL),real(0x1389ed75LL),
+      4654,real(327806325),
       // C4[0], coeff of eps^25, polynomial in n of order 1
-      -real(331600LL),real(247203LL),real(0x1321b8829LL),
+      -331600,247203,real(5135632425LL),
       // C4[0], coeff of eps^24, polynomial in n of order 2
-      -real(0x723868100LL),real(0x38a8b9d80LL),real(0xdffa9ae8LL),
+      -real(30660788480LL),real(15209307520LL),real(3757742824LL),
       real(0xbd65c2e6062dLL),
       // C4[0], coeff of eps^23, polynomial in n of order 3
       -real(0x4a56872d110LL),real(0x30d818a0d20LL),-real(0x183639ebbb0LL),
       real(0x1207973318dLL),real(0x472c0a3d3d1ee9LL),
       // C4[0], coeff of eps^22, polynomial in n of order 4
       -real(0x743607eea80LL),real(0x5536ade42a0LL),-real(0x37e9933c940LL),
-      real(0x1bb15f964e0LL),real(0x6d39be23aaLL),real(0x472c0a3d3d1ee9LL),
+      real(0x1bb15f964e0LL),real(469120197546LL),real(0x472c0a3d3d1ee9LL),
       // C4[0], coeff of eps^21, polynomial in n of order 5
       -real(0x1a80e82073690LL),real(0x1485d9e7af5c0LL),-real(0xf039fc9e8ff0LL),
       real(0x9d5f26153ce0LL),-real(0x4ddf0f750f50LL),real(0x39e793daa6ebLL),
@@ -1731,133 +1714,133 @@ namespace GeographicLib {
       -real(0xe72f9d31220580LL),real(0xb817a196612bc0LL),
       -real(0x8e0a680913c900LL),real(0x67a3067b290a40LL),
       -real(0x43c43707776c80LL),real(0x217ef7b84400c0LL),
-      real(0x83b895ad56e94LL),reale(16517LL,0x8519000aea763LL),
+      real(0x83b895ad56e94LL),reale(16517,0x8519000aea763LL),
       // C4[0], coeff of eps^19, polynomial in n of order 7
       -real(0x5be35cb0a188d670LL),real(0x49fb9f6e0e1fa420LL),
       -real(0x3a970b1601b36050LL),real(0x2d0406e3051baec0LL),
       -real(0x20bde41e80026c30LL),real(0x155cea808b65d160LL),
       -real(0xa8bc4b2c853c610LL),real(0x7d3acd77deac86fLL),
-      reale(0x1163fcLL,0xdfbd02f131dafLL),
+      reale(1139708,0xdfbd02f131dafLL),
       // C4[0], coeff of eps^18, polynomial in n of order 8
-      reale(-2220LL,0x6aa37b2cb6f00LL),real(0x6f523368eabed3a0LL),
+      -reale(2219,0x955c84d349100LL),real(0x6f523368eabed3a0LL),
       -real(0x58df9f4050ea48c0LL),real(0x45eb9b162449f0e0LL),
       -real(0x35736f4da3b86880LL),real(0x26bb8b2d01772220LL),
       -real(0x19350a3e2b857840LL),real(0xc6cd21a34a65f60LL),
-      real(0x30a9f24aaae2862LL),reale(0x1163fcLL,0xdfbd02f131dafLL),
+      real(0x30a9f24aaae2862LL),reale(1139708,0xdfbd02f131dafLL),
       // C4[0], coeff of eps^17, polynomial in n of order 9
-      reale(-3521LL,0x793be71994bd0LL),reale(2768LL,0x78979286ec480LL),
-      reale(-2192LL,0x543644b2a6130LL),real(0x6c38e96882e6a560LL),
+      -reale(3520,0x86c418e66b430LL),reale(2768,0x78979286ec480LL),
+      -reale(2191,0xabc9bb4d59ed0LL),real(0x6c38e96882e6a560LL),
       -real(0x54765a5d7300bb70LL),real(0x402d11108cfc5240LL),
       -real(0x2e4c264c23518e10LL),real(0x1e09e0cfb5ca8720LL),
       -real(0xec7bce3f9449ab0LL),real(0xaf0b9139605a58dLL),
-      reale(0x1163fcLL,0xdfbd02f131dafLL),
+      reale(1139708,0xdfbd02f131dafLL),
       // C4[0], coeff of eps^16, polynomial in n of order 10
-      reale(-6137LL,0xadddc51340600LL),reale(4597LL,0xf56d1171d1b00LL),
-      reale(-3532LL,0x1efef8069b800LL),reale(2747LL,0xc7a53bf3c9500LL),
-      reale(-2143LL,0x63da405706a00LL),real(0x677abbdfa4dcef00LL),
+      -reale(6136,0x52223aecbfa00LL),reale(4597,0xf56d1171d1b00LL),
+      -reale(3531,0xe10107f964800LL),reale(2747,0xc7a53bf3c9500LL),
+      -reale(2142,0x9c25bfa8f9600LL),real(0x677abbdfa4dcef00LL),
       -real(0x4e0ad45efdfc2400LL),real(0x37ff2b5bd74de900LL),
       -real(0x2432b6ddc0003200LL),real(0x11c5dbb8178f4300LL),
-      real(0x4536f43fdb6a550LL),reale(0x1163fcLL,0xdfbd02f131dafLL),
+      real(0x4536f43fdb6a550LL),reale(1139708,0xdfbd02f131dafLL),
       // C4[0], coeff of eps^15, polynomial in n of order 11
-      reale(-13103LL,0x6909fee14590LL),reale(8724LL,0xbd02d5fc04060LL),
-      reale(-6235LL,0x97202aa8d6e30LL),reale(4636LL,0xd96d16348cb80LL),
-      reale(-3526LL,0xb8daae79484d0LL),reale(2702LL,0xc781c601a46a0LL),
-      reale(-2063LL,0x846e4aa048d70LL),real(0x60521f1f549575c0LL),
+      -reale(13102,0xf96f6011eba70LL),reale(8724,0xbd02d5fc04060LL),
+      -reale(6234,0x68dfd557291d0LL),reale(4636,0xd96d16348cb80LL),
+      -reale(3525,0x47255186b7b30LL),reale(2702,0xc781c601a46a0LL),
+      -reale(2062,0x7b91b55fb7290LL),real(0x60521f1f549575c0LL),
       -real(0x44a70474ce1373f0LL),real(0x2c2e0084319d1ce0LL),
       -real(0x15a2a473a1b17b50LL),real(0xff41fd49dab95d3LL),
-      reale(0x1163fcLL,0xdfbd02f131dafLL),
+      reale(1139708,0xdfbd02f131dafLL),
       // C4[0], coeff of eps^14, polynomial in n of order 12
-      reale(-63392LL,0x8f5b768236180LL),reale(23343LL,0xc5a3f9fbbcce0LL),
-      reale(-13454LL,0xd872db320c540LL),reale(8911LL,0x777a0315423a0LL),
-      reale(-6324LL,0xd8eb075800100LL),reale(4656LL,0xe8c5e07109660LL),
-      reale(-3492LL,0xf941a026f1cc0LL),reale(2621LL,0xb84b17c4ad20LL),
+      -reale(63391,0x70a4897dc9e80LL),reale(23343,0xc5a3f9fbbcce0LL),
+      -reale(13453,0x278d24cdf3ac0LL),reale(8911,0x777a0315423a0LL),
+      -reale(6323,0x2714f8a7fff00LL),reale(4656,0xe8c5e07109660LL),
+      -reale(3491,0x6be5fd90e340LL),reale(2621,0xb84b17c4ad20LL),
       -real(0x78f908534453df80LL),real(0x55814182d129efe0LL),
       -real(0x36b7bc0c02deebc0LL),real(0x1ab5b755becbe6a0LL),
-      real(0x672760e43e7e5beLL),reale(0x1163fcLL,0xdfbd02f131dafLL),
+      real(0x672760e43e7e5beLL),reale(1139708,0xdfbd02f131dafLL),
       // C4[0], coeff of eps^13, polynomial in n of order 13
-      reale(112706LL,0xdfd869d806ed0LL),reale(29093LL,0xf8d3fc140cbc0LL),
-      reale(-65761LL,0x84ad3ebfe66b0LL),reale(24105LL,0xa651ba0482d20LL),
-      reale(-13823LL,0x2bd795d3b3c90LL),reale(9095LL,0xad3608e2bd280LL),
-      reale(-6395LL,0xdbeb183113c70LL),reale(4646LL,0x4bdec656d47e0LL),
-      reale(-3414LL,0x89f66294fb250LL),reale(2482LL,0x54f2fd0561940LL),
+      reale(112706,0xdfd869d806ed0LL),reale(29093,0xf8d3fc140cbc0LL),
+      -reale(65760,0x7b52c14019950LL),reale(24105,0xa651ba0482d20LL),
+      -reale(13822,0xd4286a2c4c370LL),reale(9095,0xad3608e2bd280LL),
+      -reale(6394,0x2414e7ceec390LL),reale(4646,0x4bdec656d47e0LL),
+      -reale(3413,0x76099d6b04db0LL),reale(2482,0x54f2fd0561940LL),
       -real(0x6c7d891fb0df15d0LL),real(0x44efe2727b65d2a0LL),
       -real(0x2183dc0de2efcff0LL),real(0x189262ba581c6bf1LL),
-      reale(0x1163fcLL,0xdfbd02f131dafLL),
+      reale(1139708,0xdfbd02f131dafLL),
       // C4[0], coeff of eps^12, polynomial in n of order 14
-      reale(22421LL,0x80a7495217980LL),reale(-122682LL,0xda49329f8b540LL),
-      reale(117806LL,0x7498b0aecaf00LL),reale(29700LL,0x9de1e174ab0c0LL),
-      reale(-68414LL,0xbd79cb11f0480LL),reale(24937LL,0xf2aac2170b440LL),
-      reale(-14210LL,0xb0aaeb2f34a00LL),reale(9268LL,0x742c2dd2c8fc0LL),
-      reale(-6434LL,0xdd790f94c4f80LL),reale(4585LL,0x3348b70941340LL),
-      reale(-3267LL,0xc4259dd2ce500LL),reale(2252LL,0x1340649a90ec0LL),
+      reale(22421,0x80a7495217980LL),-reale(122681,0x25b6cd6074ac0LL),
+      reale(117806,0x7498b0aecaf00LL),reale(29700,0x9de1e174ab0c0LL),
+      -reale(68413,0x428634ee0fb80LL),reale(24937,0xf2aac2170b440LL),
+      -reale(14209,0x4f5514d0cb600LL),reale(9268,0x742c2dd2c8fc0LL),
+      -reale(6433,0x2286f06b3b080LL),reale(4585,0x3348b70941340LL),
+      -reale(3266,0x3bda622d31b00LL),reale(2252,0x1340649a90ec0LL),
       -real(0x589f5d02f1d02580LL),real(0x2adce3e44e715240LL),
-      real(0xa36591ccc5a22bcLL),reale(0x1163fcLL,0xdfbd02f131dafLL),
+      real(0xa36591ccc5a22bcLL),reale(1139708,0xdfbd02f131dafLL),
       // C4[0], coeff of eps^11, polynomial in n of order 15
-      real(0x3845a63e874b7f90LL),reale(2990LL,0x790a9d44cfaa0LL),
-      reale(23275LL,0xc0709755ecab0LL),reale(-127864LL,0xae9467a7b3640LL),
-      reale(123656LL,0x74905ab09b3d0LL),reale(30291LL,0xc8698ff57f9e0LL),
-      reale(-71411LL,0xd141077f90ef0LL),reale(25848LL,0x521bca14dd980LL),
-      reale(-14606LL,0x539211082b010LL),reale(9413LL,0x816443bfd6920LL),
-      reale(-6416LL,0xcea11270f6b30LL),reale(4438LL,0xfed32587f3cc0LL),
-      reale(-3003LL,0x5445fd3251450LL),real(0x74ba3cd78aa5e860LL),
+      real(0x3845a63e874b7f90LL),reale(2990,0x790a9d44cfaa0LL),
+      reale(23275,0xc0709755ecab0LL),-reale(127863,0x516b98584c9c0LL),
+      reale(123656,0x74905ab09b3d0LL),reale(30291,0xc8698ff57f9e0LL),
+      -reale(71410,0x2ebef8806f110LL),reale(25848,0x521bca14dd980LL),
+      -reale(14605,0xac6deef7d4ff0LL),reale(9413,0x816443bfd6920LL),
+      -reale(6415,0x315eed8f094d0LL),reale(4438,0xfed32587f3cc0LL),
+      -reale(3002,0xabba02cdaebb0LL),real(0x74ba3cd78aa5e860LL),
       -real(0x3812b2b32b2f8090LL),real(0x28bab2d4ac11f317LL),
-      reale(0x1163fcLL,0xdfbd02f131dafLL),
+      reale(1139708,0xdfbd02f131dafLL),
       // C4[0], coeff of eps^10, polynomial in n of order 16
       real(0xbcd4fd6df5b2600LL),real(0x17fed2a1d906c020LL),
-      real(0x3a338f7e05a82540LL),reale(3102LL,0x8ee9d52fa7060LL),
-      reale(24235LL,0xac0c2ca98fc80LL),reale(-133762LL,0x247e0b2cd04a0LL),
-      reale(130458LL,0x34533ae1a43c0LL),reale(30833LL,0xcd61b102f94e0LL),
-      reale(-74831LL,0x4c5ab3c209300LL),reale(26842LL,0xad19affdd3920LL),
-      reale(-14997LL,0x9ca46173c8240LL),reale(9500LL,0x408e4569f0960LL),
-      reale(-6295LL,0x71c3db0aea980LL),reale(4143LL,0x97d5a30101da0LL),
-      reale(-2535LL,0xa955f7e7ba0c0LL),real(0x4b644b6e4da18de0LL),
-      real(0x11925bb6ba64765aLL),reale(0x1163fcLL,0xdfbd02f131dafLL),
+      real(0x3a338f7e05a82540LL),reale(3102,0x8ee9d52fa7060LL),
+      reale(24235,0xac0c2ca98fc80LL),-reale(133761,0xdb81f4d32fb60LL),
+      reale(130458,0x34533ae1a43c0LL),reale(30833,0xcd61b102f94e0LL),
+      -reale(74830,0xb3a54c3df6d00LL),reale(26842,0xad19affdd3920LL),
+      -reale(14996,0x635b9e8c37dc0LL),reale(9500,0x408e4569f0960LL),
+      -reale(6294,0x8e3c24f515680LL),reale(4143,0x97d5a30101da0LL),
+      -reale(2534,0x56aa081845f40LL),real(0x4b644b6e4da18de0LL),
+      real(0x11925bb6ba64765aLL),reale(1139708,0xdfbd02f131dafLL),
       // C4[0], coeff of eps^9, polynomial in n of order 17
       real(0x3fcae6c51cf8fd0LL),real(0x6afa1c71c2ac100LL),
       real(0xc2892977602fa30LL),real(0x18cb840e0ff332e0LL),
-      real(0x3c56602ddecd9290LL),reale(3228LL,0x26f051b5c20c0LL),
-      reale(25324LL,0xf8a24438674f0LL),reale(-140559LL,0xa4d28ee2ee6a0LL),
-      reale(138496LL,0xa2474d581bd50LL),reale(31265LL,0x7dd7c9350e080LL),
-      reale(-78782LL,0xbf80f036e87b0LL),reale(27920LL,0xd85d0c9896a60LL),
-      reale(-15348LL,0x42ae88954f010LL),reale(9468LL,0xaa167d507e040LL),
-      reale(-5982LL,0x32ead41741270LL),reale(3570LL,0xf062f37e99e20LL),
+      real(0x3c56602ddecd9290LL),reale(3228,0x26f051b5c20c0LL),
+      reale(25324,0xf8a24438674f0LL),-reale(140558,0x5b2d711d11960LL),
+      reale(138496,0xa2474d581bd50LL),reale(31265,0x7dd7c9350e080LL),
+      -reale(78781,0x407f0fc917850LL),reale(27920,0xd85d0c9896a60LL),
+      -reale(15347,0xbd51776ab0ff0LL),reale(9468,0xaa167d507e040LL),
+      -reale(5981,0xcd152be8bed90LL),reale(3570,0xf062f37e99e20LL),
       -real(0x68dc53d94dbff530LL),real(0x4ae92c9a7a683bf5LL),
-      reale(0x1163fcLL,0xdfbd02f131dafLL),
+      reale(1139708,0xdfbd02f131dafLL),
       // C4[0], coeff of eps^8, polynomial in n of order 18
       real(0x1b54ebcbbde1f00LL),real(0x2947b9527677980LL),
       real(0x415d003e7b1b800LL),real(0x6df9566e0623680LL),
       real(0xc8ad7ddfed65100LL),real(0x19abdc3c4555e380LL),
-      real(0x3eb74cbd79d9ca00LL),reale(3370LL,0x20d152b7a6080LL),
-      reale(26575LL,0x8086d641a0300LL),reale(-148507LL,0xf151c949f8d80LL),
-      reale(148190LL,0x3f5dc7314dc00LL),reale(31472LL,0x41aaeb33d4a80LL),
-      reale(-83407LL,0xcfc991b83500LL),reale(29065LL,0x630b32b837780LL),
-      reale(-15586LL,0xd89b5e1b1ee00LL),reale(9192LL,0xabf11a369f480LL),
-      reale(-5287LL,0xc9ec3b4bfe700LL),reale(2436LL,0x784ea73c0a180LL),
-      real(0x2209232c3cc4cca8LL),reale(0x1163fcLL,0xdfbd02f131dafLL),
+      real(0x3eb74cbd79d9ca00LL),reale(3370,0x20d152b7a6080LL),
+      reale(26575,0x8086d641a0300LL),-reale(148506,0xeae36b607280LL),
+      reale(148190,0x3f5dc7314dc00LL),reale(31472,0x41aaeb33d4a80LL),
+      -reale(83406,0xf30366e47cb00LL),reale(29065,0x630b32b837780LL),
+      -reale(15585,0x2764a1e4e1200LL),reale(9192,0xabf11a369f480LL),
+      -reale(5286,0x3613c4b401900LL),reale(2436,0x784ea73c0a180LL),
+      real(0x2209232c3cc4cca8LL),reale(1139708,0xdfbd02f131dafLL),
       // C4[0], coeff of eps^7, polynomial in n of order 19
       real(0xd73a52d8bd1790LL),real(0x13078939da8f2e0LL),
       real(0x1bc62bcb4923530LL),real(0x2a1bb9d3adccf00LL),
       real(0x42f03cdd160e0d0LL),real(0x711670ab4ed8b20LL),
       real(0xcf3f2963eb3be70LL),real(0x1aa1c278c7668b40LL),
-      real(0x416120b2cbe67210LL),reale(3532LL,0x3a6649f1d3360LL),
-      reale(28031LL,0x35f5ca2c79fb0LL),reale(-157971LL,0x2ee4d7f0ae780LL),
-      reale(160182LL,0x9c904f3daeb50LL),reale(31228LL,0xe702b02a70ba0LL),
-      reale(-88908LL,0xcbba43faf8f0LL),reale(30210LL,0xe03f62b8103c0LL),
-      reale(-15534LL,0x85f09531b6c90LL),reale(8379LL,0xc089c57da33e0LL),
-      reale(-3747LL,0xcd57a8beaea30LL),reale(2585LL,0x396e1f38f6dbbLL),
-      reale(0x1163fcLL,0xdfbd02f131dafLL),
+      real(0x416120b2cbe67210LL),reale(3532,0x3a6649f1d3360LL),
+      reale(28031,0x35f5ca2c79fb0LL),-reale(157970,0xd11b280f51880LL),
+      reale(160182,0x9c904f3daeb50LL),reale(31228,0xe702b02a70ba0LL),
+      -reale(88907,0xf3445bc050710LL),reale(30210,0xe03f62b8103c0LL),
+      -reale(15533,0x7a0f6ace49370LL),reale(8379,0xc089c57da33e0LL),
+      -reale(3746,0x32a85741515d0LL),reale(2585,0x396e1f38f6dbbLL),
+      reale(1139708,0xdfbd02f131dafLL),
       // C4[0], coeff of eps^6, polynomial in n of order 20
       real(0x73457ae9fefc80LL),real(0x9bfefa36a68d60LL),
       real(0xd7e57b2fb0d740LL),real(0x132c60dd72bf720LL),
       real(0x1c1d29144004a00LL),real(0x2ad464b0fcdcce0LL),
       real(0x446dc104a967cc0LL),real(0x7436e717eb8b6a0LL),
       real(0xd626d1c40bc9780LL),real(0x1badddc640275c60LL),
-      real(0x445f879c8f67c240LL),reale(3719LL,0x5820c25fe6620LL),
-      reale(29754LL,0xa45b204c52500LL),reale(-169505LL,0x1dd84d2a87be0LL),
-      reale(175522LL,0xa8a2f18c5e7c0LL),reale(30060LL,0x7f96216b245a0LL),
-      reale(-95557LL,0x358f8202b3280LL),reale(31150LL,0x37da9e0a66b60LL),
-      reale(-14735LL,0xdfc58b1922d40LL),reale(6239LL,0x114e25ea99520LL),
-      real(0x4f113ff5b79764b6LL),reale(0x1163fcLL,0xdfbd02f131dafLL),
+      real(0x445f879c8f67c240LL),reale(3719,0x5820c25fe6620LL),
+      reale(29754,0xa45b204c52500LL),-reale(169504,0xe227b2d578420LL),
+      reale(175522,0xa8a2f18c5e7c0LL),reale(30060,0x7f96216b245a0LL),
+      -reale(95556,0xca707dfd4cd80LL),reale(31150,0x37da9e0a66b60LL),
+      -reale(14734,0x203a74e6dd2c0LL),reale(6239,0x114e25ea99520LL),
+      real(0x4f113ff5b79764b6LL),reale(1139708,0xdfbd02f131dafLL),
       // C4[0], coeff of eps^5, polynomial in n of order 21
       real(0x40c53da188eed0LL),real(0x54ed187b34c440LL),
       real(0x7146df082c9bb0LL),real(0x9a154e844696a0LL),
@@ -1865,12 +1848,12 @@ namespace GeographicLib {
       real(0x1c3f2cd359b1b70LL),real(0x2b4dcc62e91c360LL),
       real(0x45a57497f9cc650LL),real(0x771c08f5a9775c0LL),
       real(0xdd1a4961392f330LL),real(0x1ccccddd60de2020LL),
-      real(0x47bbc762b5878e10LL),reale(3937LL,0xc2066e54dee80LL),
-      reale(31838LL,0x13ce9b56b82f0LL),reale(-183991LL,0xf715b65f90ce0LL),
-      reale(196055LL,0x20a74184cbdd0LL),reale(26856LL,0x50de39af9a740LL),
-      reale(-103682LL,0x6d7b35dec2ab0LL),reale(31195LL,0x5686bd94fe9a0LL),
-      reale(-11740LL,0x133929ff3b590LL),reale(7362LL,0xc12f75a94f319LL),
-      reale(0x1163fcLL,0xdfbd02f131dafLL),
+      real(0x47bbc762b5878e10LL),reale(3937,0xc2066e54dee80LL),
+      reale(31838,0x13ce9b56b82f0LL),-reale(183990,0x8ea49a06f320LL),
+      reale(196055,0x20a74184cbdd0LL),reale(26856,0x50de39af9a740LL),
+      -reale(103681,0x9284ca213d550LL),reale(31195,0x5686bd94fe9a0LL),
+      -reale(11739,0xecc6d600c4a70LL),reale(7362,0xc12f75a94f319LL),
+      reale(1139708,0xdfbd02f131dafLL),
       // C4[0], coeff of eps^4, polynomial in n of order 22
       real(0x25018b34093680LL),real(0x2f66db340747c0LL),
       real(0x3d8eaf55c4d300LL),real(0x512efdf6054640LL),
@@ -1879,11 +1862,11 @@ namespace GeographicLib {
       real(0x1bf83185acb2880LL),real(0x2b3ea99410c91c0LL),
       real(0x462f30f09fee500LL),real(0x7931c8e1f8c9040LL),
       real(0xe34caff0bb50180LL),real(0x1def0c2db115e6c0LL),
-      real(0x4b7080401d466e00LL),reale(4194LL,0xbf682a6ae8540LL),
-      reale(34423LL,0x2600aa7441a80LL),reale(-202944LL,0x1726442785bc0LL),
-      reale(225378LL,0x7bd3e279ef700LL),reale(18574LL,0x52c9633395a40LL),
-      reale(-113351LL,0x39957cff380LL),reale(27528LL,0x198b9d86370c0LL),
-      reale(3947LL,0xb3131e15c994LL),reale(0x1163fcLL,0xdfbd02f131dafLL),
+      real(0x4b7080401d466e00LL),reale(4194,0xbf682a6ae8540LL),
+      reale(34423,0x2600aa7441a80LL),-reale(202943,0xe8d9bbd87a440LL),
+      reale(225378,0x7bd3e279ef700LL),reale(18574,0x52c9633395a40LL),
+      -reale(113350,0xffc66a8300c80LL),reale(27528,0x198b9d86370c0LL),
+      reale(3947,0xb3131e15c994LL),reale(1139708,0xdfbd02f131dafLL),
       // C4[0], coeff of eps^3, polynomial in n of order 23
       real(0x14ba9dec234d90LL),real(0x1a15f878f54920LL),
       real(0x2134b5fb572db0LL),real(0x2acf89c87d75c0LL),
@@ -1893,11 +1876,11 @@ namespace GeographicLib {
       real(0x1add3c5ff77a230LL),real(0x2a08c939311e040LL),
       real(0x451c5af5bb5c050LL),real(0x7909ad73ef1ece0LL),
       real(0xe685850971be070LL),real(0x1edeb97922aff580LL),
-      real(0x4f3a8e20463e7690LL),reale(4494LL,0x6f4eb7a652e20LL),
-      reale(37733LL,0xf376431ecf6b0LL),reale(-229274LL,0x2c20251e2cac0LL),
-      reale(271637LL,0x92a93446bd4d0LL),reale(-5668LL,0x733614463ff60LL),
-      reale(-121043LL,0x5370b100e84f0LL),reale(39799LL,0x5b8561a065b3fLL),
-      reale(0x1163fcLL,0xdfbd02f131dafLL),
+      real(0x4f3a8e20463e7690LL),reale(4494,0x6f4eb7a652e20LL),
+      reale(37733,0xf376431ecf6b0LL),-reale(229273,0xd3dfdae1d3540LL),
+      reale(271637,0x92a93446bd4d0LL),-reale(5667,0x8cc9ebb9c00a0LL),
+      -reale(121042,0xac8f4eff17b10LL),reale(39799,0x5b8561a065b3fLL),
+      reale(1139708,0xdfbd02f131dafLL),
       // C4[0], coeff of eps^2, polynomial in n of order 24
       real(0xab22c89592500LL),real(0xd46ccddd414a0LL),real(0x10a4eb8f1ddb40LL),
       real(0x15184ab619d7e0LL),real(0x1b0f2efb81a980LL),
@@ -1908,10 +1891,10 @@ namespace GeographicLib {
       real(0x263a4a7c48d9420LL),real(0x401905d594140c0LL),
       real(0x72c2e250398d760LL),real(0xe012c263c05b700LL),
       real(0x1edcfb1205061ea0LL),real(0x51c797f92b334d40LL),
-      reale(4810LL,0x460394707a1e0LL),reale(42101LL,0xccb76963dbb80LL),
-      reale(-269614LL,0x8d55c47b99920LL),reale(357865LL,0x4c16ffd0cb9c0LL),
-      reale(-115780LL,0xd079e2d63c60LL),reale(-21709LL,0x42716da882b52LL),
-      reale(0x1163fcLL,0xdfbd02f131dafLL),
+      reale(4810,0x460394707a1e0LL),reale(42101,0xccb76963dbb80LL),
+      -reale(269613,0x72aa3b84666e0LL),reale(357865,0x4c16ffd0cb9c0LL),
+      -reale(115779,0xf2f861d29c3a0LL),-reale(21708,0xbd8e92577d4aeLL),
+      reale(1139708,0xdfbd02f131dafLL),
       // C4[0], coeff of eps^1, polynomial in n of order 25
       real(0x16b98c18c43f0LL),real(0x1be76827efc80LL),real(0x2291674649910LL),
       real(0x2b3d2747a6820LL),real(0x36a8d2fdcc830LL),real(0x45e795ad137c0LL),
@@ -1922,9 +1905,9 @@ namespace GeographicLib {
       real(0x959d5c24529de0LL),real(0x102f2d0b50524f0LL),
       real(0x1e1472bfb1ba980LL),real(0x3d69bf9cb587a10LL),
       real(0x8ee1210e8c36520LL),real(0x194d332fe8d44930LL),
-      real(0x6534ccbfa35124c0LL),reale(15788LL,0x2cc4c78572650LL),
-      reale(-115780LL,0xd079e2d63c60LL),reale(173669LL,0xec7492bbea570LL),
-      reale(-75981LL,0x688cffcdc979fLL),reale(379902LL,0xf53f00fb109e5LL),
+      real(0x6534ccbfa35124c0LL),reale(15788,0x2cc4c78572650LL),
+      -reale(115779,0xf2f861d29c3a0LL),reale(173669,0xec7492bbea570LL),
+      -reale(75980,0x9773003236861LL),reale(379902,0xf53f00fb109e5LL),
       // C4[0], coeff of eps^0, polynomial in n of order 26
       real(0x104574695550b58LL),real(0x124efd1ef41bc1cLL),
       real(0x14b36c04f5f7ca0LL),real(0x1787788b9792f24LL),
@@ -1936,159 +1919,159 @@ namespace GeographicLib {
       real(0xa7cc0a01a036650LL),real(0xda93e49d10b2a54LL),
       real(0x1243757f6f15c598LL),real(0x193422259e6ad85cLL),
       real(0x24309a0ea1d47ee0LL),real(0x36b22ea791accb64LL),
-      real(0x588e3327aee70028LL),reale(2530LL,0x27feb6f2ec96cLL),
-      reale(5262LL,0xb996ed2c7b770LL),reale(14472LL,0x7e5f0c3a53874LL),
-      reale(86834LL,0xf63a495df52b8LL),reale(-303923LL,0xa233ff3725e7cLL),
-      reale(759805LL,0xea7e01f6213caLL),reale(0x1163fcLL,0xdfbd02f131dafLL),
+      real(0x588e3327aee70028LL),reale(2530,0x27feb6f2ec96cLL),
+      reale(5262,0xb996ed2c7b770LL),reale(14472,0x7e5f0c3a53874LL),
+      reale(86834,0xf63a495df52b8LL),-reale(303922,0x5dcc00c8da184LL),
+      reale(759805,0xea7e01f6213caLL),reale(1139708,0xdfbd02f131dafLL),
       // C4[1], coeff of eps^26, polynomial in n of order 0
-      real(4654LL),real(0x1389ed75LL),
+      4654,real(327806325),
       // C4[1], coeff of eps^25, polynomial in n of order 1
-      real(0x1516d30LL),real(0x543e3bLL),real(0xf784431927LL),
+      real(22113584),5520955,real(0xf784431927LL),
       // C4[1], coeff of eps^24, polynomial in n of order 2
-      real(0x6e1bbfa00LL),-real(0x3b5106500LL),real(0x29fefd0b8LL),
+      real(29556996608LL),-real(15922652416LL),real(11273228472LL),
       real(0x2383148b21287LL),
       // C4[1], coeff of eps^23, polynomial in n of order 3
       real(0x165661ad6b70LL),-real(0x1009b31cabe0LL),real(0x7444963bdd0LL),
       real(0x1d0511c64f5LL),real(0x42b94999694cfa7LL),
       // C4[1], coeff of eps^22, polynomial in n of order 4
-      real(0xa226b42100LL),-real(0x82b9c957c0LL),real(0x4dd9f4b480LL),
-      -real(0x2a87741140LL),real(0x1dc9ee09baLL),real(0x13691a10b39411LL),
+      real(696434041088LL),-real(561462728640LL),real(334369174656LL),
+      -real(182661157184LL),real(127941872058LL),real(0x13691a10b39411LL),
       // C4[1], coeff of eps^21, polynomial in n of order 5
       real(0x2b50c847e5bec70LL),-real(0x25172ad2adc8640LL),
       real(0x187490c86e06510LL),-real(0x11cf5b364679120LL),
       real(0x7e9f37da26e7b0LL),real(0x1f979b01bfd5e3LL),
-      reale(227941LL,0xc6590096a3923LL),
+      reale(227941,0xc6590096a3923LL),
       // C4[1], coeff of eps^20, polynomial in n of order 6
       real(0x84a641c077c100LL),-real(0x75601a6b667780LL),
       real(0x51157a29d94600LL),-real(0x4247925ad10480LL),
       real(0x269068d8c2ab00LL),-real(0x15748d5a64a980LL),
-      real(0xed190d6b360a4LL),reale(29731LL,0x892d0013a607fLL),
+      real(0xed190d6b360a4LL),reale(29731,0x892d0013a607fLL),
       // C4[1], coeff of eps^19, polynomial in n of order 7
       real(0x57e3d5e3e8a64d50LL),-real(0x4ee151925712ac60LL),
       real(0x379f60f9d8160ef0LL),-real(0x3036f6417460ec40LL),
       real(0x1eece80c1c746690LL),-real(0x16f21d696f523420LL),
       real(0x9ef6bfafd871830LL),real(0x27a3f6720674fabLL),
-      reale(0x342bf6LL,0x9f3708d39590dLL),
+      reale(3419126,0x9f3708d39590dLL),
       // C4[1], coeff of eps^18, polynomial in n of order 8
-      reale(2128LL,0x469250df87e00LL),-real(0x76ff6f2ca68ee740LL),
+      reale(2128,0x469250df87e00LL),-real(0x76ff6f2ca68ee740LL),
       real(0x544ea56af984a280LL),-real(0x4b3b3c5b1f3b3dc0LL),
       real(0x324e822f05811f00LL),-real(0x29dd8ae6f4502040LL),
       real(0x179c3b6434632b80LL),-real(0xd7628385c5d56c0LL),
-      real(0x91fdd6e000a7926LL),reale(0x342bf6LL,0x9f3708d39590dLL),
+      real(0x91fdd6e000a7926LL),reale(3419126,0x9f3708d39590dLL),
       // C4[1], coeff of eps^17, polynomial in n of order 9
-      reale(3396LL,0xc29d3f547be10LL),reale(-2964LL,0x99a8488284e80LL),
-      reale(2082LL,0xa3af2d55cd2f0LL),-real(0x74e3fc23ed074b20LL),
+      reale(3396,0xc29d3f547be10LL),-reale(2963,0x6657b77d7b180LL),
+      reale(2082,0xa3af2d55cd2f0LL),-real(0x74e3fc23ed074b20LL),
       real(0x4f51e11c0cc64dd0LL),-real(0x45cc62cad46028c0LL),
       real(0x2b210825284d5ab0LL),-real(0x20cfde05bc67de60LL),
       real(0xdb6584e22cc2590LL),real(0x36aae0ede944991LL),
-      reale(0x342bf6LL,0x9f3708d39590dLL),
+      reale(3419126,0x9f3708d39590dLL),
       // C4[1], coeff of eps^16, polynomial in n of order 10
-      reale(5994LL,0xfab7bd428a400LL),reale(-4920LL,0x276aa3c67f600LL),
-      reale(3376LL,0x641d9d71fd000LL),reale(-2976LL,0xcdf2cc6d9ea00LL),
+      reale(5994,0xfab7bd428a400LL),-reale(4919,0xd8955c3980a00LL),
+      reale(3376,0x641d9d71fd000LL),-reale(2975,0x320d339261600LL),
       real(0x7dd1b5a4fb9ffc00LL),-real(0x712cdc1424704200LL),
       real(0x486493a43f86e800LL),-real(0x3daeb06e6a40ce00LL),
       real(0x21506b8426325400LL),-real(0x13a656589a61fa00LL),
-      real(0xcfa4dcbf923eff0LL),reale(0x342bf6LL,0x9f3708d39590dLL),
+      real(0xcfa4dcbf923eff0LL),reale(3419126,0x9f3708d39590dLL),
       // C4[1], coeff of eps^15, polynomial in n of order 11
-      reale(13117LL,0x6cbddabc52ed0LL),reale(-9319LL,0x570c1564bb3e0LL),
-      reale(6040LL,0x7b2fdab4ba7f0LL),reale(-5023LL,0xdd4767cbca180LL),
-      reale(3330LL,0x281af37e2710LL),reale(-2969LL,0xba9176a5d3f20LL),
+      reale(13117,0x6cbddabc52ed0LL),-reale(9318,0xa8f3ea9b44c20LL),
+      reale(6040,0x7b2fdab4ba7f0LL),-reale(5022,0x22b8983435e80LL),
+      reale(3330,0x281af37e2710LL),-reale(2968,0x456e895a2c0e0LL),
       real(0x7764510336be0030LL),-real(0x6af4843f7d4f5f40LL),
       real(0x3eba1ed514e18750LL),-real(0x31669b90045c25a0LL),
       real(0x13a17c0101ce1070LL),real(0x4e2a88c78d66acfLL),
-      reale(0x342bf6LL,0x9f3708d39590dLL),
+      reale(3419126,0x9f3708d39590dLL),
       // C4[1], coeff of eps^14, polynomial in n of order 12
-      reale(68147LL,0x8cb1a33fbb300LL),reale(-25031LL,0xe657c4ceb2a40LL),
-      reale(13399LL,0xd5b954b9ffe80LL),reale(-9633LL,0xa008523a478c0LL),
-      reale(6058LL,0x6185fb910e200LL),reale(-5123LL,0xdb0ce1cd90340LL),
-      reale(3246LL,0x498e64bf8a580LL),reale(-2930LL,0x39f0ac65811c0LL),
+      reale(68147,0x8cb1a33fbb300LL),-reale(25030,0x19a83b314d5c0LL),
+      reale(13399,0xd5b954b9ffe80LL),-reale(9632,0x5ff7adc5b8740LL),
+      reale(6058,0x6185fb910e200LL),-reale(5122,0x24f31e326fcc0LL),
+      reale(3246,0x498e64bf8a580LL),-reale(2929,0xc60f539a7ee40LL),
       real(0x6e041fee5d419100LL),-real(0x60b53ba76d5f13c0LL),
       real(0x3113d4fc9085ec80LL),-real(0x1e6533c87b7d2540LL),
-      real(0x1357622acbb7b13aLL),reale(0x342bf6LL,0x9f3708d39590dLL),
+      real(0x1357622acbb7b13aLL),reale(3419126,0x9f3708d39590dLL),
       // C4[1], coeff of eps^13, polynomial in n of order 13
-      reale(-121533LL,0x1baeb1d428990LL),reale(-15941LL,0xe8aacebc2ecc0LL),
-      reale(71019LL,0xc50f40d0125f0LL),reale(-26121LL,0xfa27e4ebd20a0LL),
-      reale(13667LL,0x35bfe1bb73850LL),reale(-9985LL,0x1b0b3e3706880LL),
-      reale(6033LL,0x4bb2ec6997cb0LL),reale(-5213LL,0xaba6ff9bbc060LL),
-      reale(3108LL,0x7a1250dedaf10LL),reale(-2837LL,0x43aa0f4a62440LL),
+      -reale(121532,0xe4514e2bd7670LL),-reale(15940,0x17553143d1340LL),
+      reale(71019,0xc50f40d0125f0LL),-reale(26120,0x5d81b142df60LL),
+      reale(13667,0x35bfe1bb73850LL),-reale(9984,0xe4f4c1c8f9780LL),
+      reale(6033,0x4bb2ec6997cb0LL),-reale(5212,0x5459006443fa0LL),
+      reale(3108,0x7a1250dedaf10LL),-reale(2836,0xbc55f0b59dbc0LL),
       real(0x605fcd3581f88b70LL),-real(0x4fb9f3b2da8b6fe0LL),
       real(0x1d6444fcd70bcdd0LL),real(0x74c81d1452803b5LL),
-      reale(0x342bf6LL,0x9f3708d39590dLL),
+      reale(3419126,0x9f3708d39590dLL),
       // C4[1], coeff of eps^12, polynomial in n of order 14
-      reale(-18280LL,0xbefa6d89ca100LL),reale(111436LL,0xf9c78acad1e80LL),
-      reale(-127456LL,0x47c2f695c9a00LL),reale(-14600LL,0x49cf710bf9d80LL),
-      reale(74253LL,0x38e0bbebab300LL),reale(-27395LL,0x999e5faa56480LL),
-      reale(13898LL,0x35bd350d73c00LL),reale(-10385LL,0x6a6f64ae0c380LL),
-      reale(5941LL,0x73f13b5b28500LL),reale(-5278LL,0xf9b7b76b40a80LL),
-      reale(2891LL,0x688dd5accde00LL),reale(-2647LL,0xe431f84a18980LL),
+      -reale(18279,0x4105927635f00LL),reale(111436,0xf9c78acad1e80LL),
+      -reale(127455,0xb83d096a36600LL),-reale(14599,0xb6308ef406280LL),
+      reale(74253,0x38e0bbebab300LL),-reale(27394,0x6661a055a9b80LL),
+      reale(13898,0x35bd350d73c00LL),-reale(10384,0x95909b51f3c80LL),
+      reale(5941,0x73f13b5b28500LL),-reale(5277,0x6484894bf580LL),
+      reale(2891,0x688dd5accde00LL),-reale(2646,0x1bce07b5e7680LL),
       real(0x4c6028727ac69700LL),-real(0x32eae1a8c2946f80LL),
-      real(0x1ea30b56650e6834LL),reale(0x342bf6LL,0x9f3708d39590dLL),
+      real(0x1ea30b56650e6834LL),reale(3419126,0x9f3708d39590dLL),
       // C4[1], coeff of eps^11, polynomial in n of order 15
-      -real(0x26534490cad1dfb0LL),reale(-2195LL,0xeb57a14506a20LL),
-      reale(-18677LL,0x670e626e50cf0LL),reale(115088LL,0x35b741cc34140LL),
-      reale(-134246LL,0x7df8512baaf90LL),reale(-12736LL,0xad44a3e04060LL),
-      reale(77916LL,0x32c371fd8ec30LL),reale(-28919LL,0x4c92ea7340b80LL),
-      reale(14055LL,0x84fcc4e4ea6d0LL),reale(-10841LL,0x59f373a2946a0LL),
-      reale(5745LL,0xafd650291c370LL),reale(-5283LL,0x54459b9c295c0LL),
-      reale(2556LL,0x876a7d9212610LL),reale(-2273LL,0x9ea5161549ce0LL),
+      -real(0x26534490cad1dfb0LL),-reale(2194,0x14a85ebaf95e0LL),
+      -reale(18676,0x98f19d91af310LL),reale(115088,0x35b741cc34140LL),
+      -reale(134245,0x8207aed455070LL),-reale(12735,0xf52bb5c1fbfa0LL),
+      reale(77916,0x32c371fd8ec30LL),-reale(28918,0xb36d158cbf480LL),
+      reale(14055,0x84fcc4e4ea6d0LL),-reale(10840,0xa60c8c5d6b960LL),
+      reale(5745,0xafd650291c370LL),-reale(5282,0xabba6463d6a40LL),
+      reale(2556,0x876a7d9212610LL),-reale(2272,0x615ae9eab6320LL),
       real(0x2e7aab3dc406b2b0LL),real(0xb7e588c69951913LL),
-      reale(0x342bf6LL,0x9f3708d39590dLL),
+      reale(3419126,0x9f3708d39590dLL),
       // C4[1], coeff of eps^10, polynomial in n of order 16
       -real(0x6ec9ec72fa83400LL),-real(0xee6121f9ed5ac40LL),
-      -real(0x2698258da225a980LL),reale(-2224LL,0x7d6de58dd7f40LL),
-      reale(-19089LL,0xb046a19e77900LL),reale(119080LL,0xff5c72a1c6ec0LL),
-      reale(-142118LL,0x83c214fc48b80LL),reale(-10118LL,0x917ce647b7a40LL),
-      reale(82086LL,0xede392256e600LL),reale(-30796LL,0x12a37b61ef9c0LL),
-      reale(14073LL,0x47ff3f3e080LL),reale(-11360LL,0x8927e4d9b4540LL),
-      reale(5387LL,0x791e9eab0d300LL),reale(-5154LL,0x32223c714b4c0LL),
+      -real(0x2698258da225a980LL),-reale(2223,0x82921a72280c0LL),
+      -reale(19088,0x4fb95e6188700LL),reale(119080,0xff5c72a1c6ec0LL),
+      -reale(142117,0x7c3deb03b7480LL),-reale(10117,0x6e8319b8485c0LL),
+      reale(82086,0xede392256e600LL),-reale(30795,0xed5c849e10640LL),
+      reale(14073,0x47ff3f3e080LL),-reale(11359,0x76d81b264bac0LL),
+      reale(5387,0x791e9eab0d300LL),-reale(5153,0xcdddc38eb4b40LL),
       real(0x7fb4f5b53eb31580LL),-real(0x5fcfbdbbdde05fc0LL),
-      real(0x34b713242f2d630eLL),reale(0x342bf6LL,0x9f3708d39590dLL),
+      real(0x34b713242f2d630eLL),reale(3419126,0x9f3708d39590dLL),
       // C4[1], coeff of eps^9, polynomial in n of order 17
       -real(0x20f38bbaca812f0LL),-real(0x39b499036d51b00LL),
       -real(0x6e4d3364d687b10LL),-real(0xee56650d93fe5a0LL),
-      -real(0x26cbb66f58b91d30LL),reale(-2251LL,0x167a106157bc0LL),
-      reale(-19511LL,0xcecb0f0cd52b0LL),reale(123456LL,0xc66bc06159520LL),
-      reale(-151363LL,0x505ffa032090LL),reale(-6380LL,0xf55ff8a36f280LL),
-      reale(86843LL,0xd7e050f079870LL),reale(-33197LL,0x80ee9e4da1fe0LL),
-      reale(13831LL,0x3ac1850370650LL),reale(-11931LL,0x72e63a167a940LL),
-      reale(4775LL,0x36871b380b630LL),reale(-4709LL,0x204f0216e1aa0LL),
+      -real(0x26cbb66f58b91d30LL),-reale(2250,0xe985ef9ea8440LL),
+      -reale(19510,0x3134f0f32ad50LL),reale(123456,0xc66bc06159520LL),
+      -reale(151362,0xfafa005fcdf70LL),-reale(6379,0xaa0075c90d80LL),
+      reale(86843,0xd7e050f079870LL),-reale(33196,0x7f1161b25e020LL),
+      reale(13831,0x3ac1850370650LL),-reale(11930,0x8d19c5e9856c0LL),
+      reale(4775,0x36871b380b630LL),-reale(4708,0xdfb0fde91e560LL),
       real(0x4e466dbc0d5cf410LL),real(0x132845ea2b7be139LL),
-      reale(0x342bf6LL,0x9f3708d39590dLL),
+      reale(3419126,0x9f3708d39590dLL),
       // C4[1], coeff of eps^8, polynomial in n of order 18
       -real(0xcaab4ddd8d4600LL),-real(0x13c31d1cbb16d00LL),
       -real(0x207a98d99de3000LL),-real(0x390c3dedd68b300LL),
       -real(0x6d71551ca261a00LL),-real(0xed90e825b918900LL),
-      -real(0x26e62c786e462400LL),reale(-2275LL,0x445093a1ef100LL),
-      reale(-19935LL,0xe24d995a09200LL),reale(128254LL,0x3ade3c4739b00LL),
-      reale(-162384LL,0x54cbec0ece800LL),-real(0x3992c873ce48ab00LL),
-      reale(92230LL,0x4a4593a3dbe00LL),reale(-36419LL,0xcbaefd1b4ff00LL),
-      reale(13110LL,0x864dfe531f400LL),reale(-12476LL,0xf5c1226b77900LL),
-      reale(3771LL,0xc13fa20286a00LL),reale(-3470LL,0xc9a2f8989a300LL),
-      real(0x661b6984b64e65f8LL),reale(0x342bf6LL,0x9f3708d39590dLL),
+      -real(0x26e62c786e462400LL),-reale(2274,0xbbaf6c5e10f00LL),
+      -reale(19934,0x1db266a5f6e00LL),reale(128254,0x3ade3c4739b00LL),
+      -reale(162383,0xab3413f131800LL),-real(0x3992c873ce48ab00LL),
+      reale(92230,0x4a4593a3dbe00LL),-reale(36418,0x345102e4b0100LL),
+      reale(13110,0x864dfe531f400LL),-reale(12475,0xa3edd9488700LL),
+      reale(3771,0xc13fa20286a00LL),-reale(3469,0x365d076765d00LL),
+      real(0x661b6984b64e65f8LL),reale(3419126,0x9f3708d39590dLL),
       // C4[1], coeff of eps^7, polynomial in n of order 19
       -real(0x5b1678b2b96e30LL),-real(0x83e7d604d6e1a0LL),
       -real(0xc5c1bd21f06210LL),-real(0x135402446a1f500LL),
       -real(0x1fd9e061288aff0LL),-real(0x381fb1c2d0ea860LL),
       -real(0x6c176a9d32ee3d0LL),-real(0xebcbb379725c7c0LL),
-      -real(0x26dc285f96da89b0LL),reale(-2293LL,0x73b088641e0e0LL),
-      reale(-20345LL,0x12b405f9bd270LL),reale(133496LL,0x33ba4ee858580LL),
-      reale(-175743LL,0x9b38f6004a490LL),reale(7288LL,0xff81f26b85a20LL),
-      reale(98139LL,0x5735ff04360b0LL),reale(-41011LL,0x93a23c36592c0LL),
-      reale(11505LL,0xfe66ab587ad0LL),reale(-12647LL,0xeb385b3526360LL),
-      reale(2204LL,0x9aaf76ecb66f0LL),real(0x2076d1ad78dbacf7LL),
-      reale(0x342bf6LL,0x9f3708d39590dLL),
+      -real(0x26dc285f96da89b0LL),-reale(2292,0x8c4f779be1f20LL),
+      -reale(20344,0xed4bfa0642d90LL),reale(133496,0x33ba4ee858580LL),
+      -reale(175742,0x64c709ffb5b70LL),reale(7288,0xff81f26b85a20LL),
+      reale(98139,0x5735ff04360b0LL),-reale(41010,0x6c5dc3c9a6d40LL),
+      reale(11505,0xfe66ab587ad0LL),-reale(12646,0x14c7a4cad9ca0LL),
+      reale(2204,0x9aaf76ecb66f0LL),real(0x2076d1ad78dbacf7LL),
+      reale(3419126,0x9f3708d39590dLL),
       // C4[1], coeff of eps^6, polynomial in n of order 20
       -real(0x2d4d049c656700LL),-real(0x3e4af5e8d022c0LL),
       -real(0x57ced7fe851580LL),-real(0x7f7034131ef240LL),
       -real(0xbf83d85dea6c00LL),-real(0x12c465612feb5c0LL),
       -real(0x1f04ac518a30280LL),-real(0x36d88216b840540LL),
       -real(0x6a13494183c7100LL),-real(0xe8a2e478ed378c0LL),
-      -real(0x269ca36792944f80LL),reale(-2301LL,0x84520bafe57c0LL),
-      reale(-20715LL,0x8feafafd7ca00LL),reale(139156LL,0x8278406ccd440LL),
-      reale(-192234LL,0xd634ab69a4380LL),reale(20133LL,0xdb20ab18364c0LL),
-      reale(103930LL,0xc444b13858500LL),reale(-48023LL,0x7a63881fd7140LL),
-      reale(8312LL,0x1287962dbf680LL),reale(-10955LL,0xe96efa02661c0LL),
-      reale(3795LL,0x3bfe126c62e22LL),reale(0x342bf6LL,0x9f3708d39590dLL),
+      -real(0x269ca36792944f80LL),-reale(2300,0x7badf4501a840LL),
+      -reale(20714,0x7015050283600LL),reale(139156,0x8278406ccd440LL),
+      -reale(192233,0x29cb54965bc80LL),reale(20133,0xdb20ab18364c0LL),
+      reale(103930,0xc444b13858500LL),-reale(48022,0x859c77e028ec0LL),
+      reale(8312,0x1287962dbf680LL),-reale(10954,0x169105fd99e40LL),
+      reale(3795,0x3bfe126c62e22LL),reale(3419126,0x9f3708d39590dLL),
       // C4[1], coeff of eps^5, polynomial in n of order 21
       -real(0x1802918882e770LL),-real(0x1fcd949a6860c0LL),
       -real(0x2aeab9b7d2f010LL),-real(0x3b2acc792185e0LL),
@@ -2096,12 +2079,12 @@ namespace GeographicLib {
       -real(0xb76e50170e2350LL),-real(0x1207f374f78a820LL),
       -real(0x1de74f0a09e95f0LL),-real(0x351484156246d40LL),
       -real(0x6722781c7da1e90LL),-real(0xe37fba15ed8da60LL),
-      -real(0x260d3a8a453ee130LL),reale(-2293LL,0xda737b59d2c80LL),
-      reale(-20990LL,0xcbee433bffe30LL),reale(145073LL,0x9b58d1932c360LL),
-      reale(-212948LL,0xbbc1f33985b90LL),reale(41274LL,0x9a63d1cc50640LL),
-      reale(107042LL,0xff9bf7f6712f0LL),reale(-59295LL,0xb696ab3f1120LL),
-      reale(2833LL,0xc664f5dce0050LL),real(0x17b85ffcea47049dLL),
-      reale(0x342bf6LL,0x9f3708d39590dLL),
+      -real(0x260d3a8a453ee130LL),-reale(2292,0x258c84a62d380LL),
+      -reale(20989,0x3411bcc4001d0LL),reale(145073,0x9b58d1932c360LL),
+      -reale(212947,0x443e0cc67a470LL),reale(41274,0x9a63d1cc50640LL),
+      reale(107042,0xff9bf7f6712f0LL),-reale(59294,0xf496954c0eee0LL),
+      reale(2833,0xc664f5dce0050LL),real(0x17b85ffcea47049dLL),
+      reale(3419126,0x9f3708d39590dLL),
       // C4[1], coeff of eps^4, polynomial in n of order 22
       -real(0xd20723e198100LL),-real(0x10e999b2026480LL),
       -real(0x161c2993f30e00LL),-real(0x1d62585afd4f80LL),
@@ -2110,11 +2093,11 @@ namespace GeographicLib {
       -real(0xac9b82d7503500LL),-real(0x1109444f53c4080LL),
       -real(0x1c6019c5f02a200LL),-real(0x329a7eb49a52b80LL),
       -real(0x62d84097135af00LL),-real(0xdb6f2c88eb4fe80LL),
-      -real(0x2502e63c01a3ec00LL),reale(-2257LL,0x7c761ad4fb680LL),
-      reale(-21064LL,0x3d6bd08981700LL),reale(150710LL,0x347c6ec646380LL),
-      reale(-239156LL,0xeee1298e3ca00LL),reale(78297LL,0xeac3242447880LL),
-      reale(97157LL,0xffcea47049d00LL),reale(-74488LL,0x33590a76b6580LL),
-      reale(11841LL,0x219395a415cbcLL),reale(0x342bf6LL,0x9f3708d39590dLL),
+      -real(0x2502e63c01a3ec00LL),-reale(2256,0x8389e52b04980LL),
+      -reale(21063,0xc2942f767e900LL),reale(150710,0x347c6ec646380LL),
+      -reale(239155,0x111ed671c3600LL),reale(78297,0xeac3242447880LL),
+      reale(97157,0xffcea47049d00LL),-reale(74487,0xcca6f58949a80LL),
+      reale(11841,0x219395a415cbcLL),reale(3419126,0x9f3708d39590dLL),
       // C4[1], coeff of eps^3, polynomial in n of order 23
       -real(0x7207334f38cb0LL),-real(0x8fe6a0f540760LL),
       -real(0xb7c4f4df6c510LL),-real(0xedcd97a176940LL),
@@ -2124,11 +2107,11 @@ namespace GeographicLib {
       -real(0x9d4a8ab99e2290LL),-real(0xf9e328cb49d8c0LL),
       -real(0x1a2ce594ece04f0LL),-real(0x2efbcc23543daa0LL),
       -real(0x5c688ee5939fd50LL),-real(0xceb90d2fccdb080LL),
-      -real(0x2331240c282307b0LL),reale(-2174LL,0xba9d6617169a0LL),
-      reale(-20717LL,0xbd20dfe74dff0LL),reale(154405LL,0x43613e2a37c0LL),
-      reale(-270828LL,0x13bcc8d3cbd90LL),reale(146546LL,0xa61bf3c2f7de0LL),
-      reale(26313LL,0x9ff2a1de69530LL),reale(-32564LL,0xe3aa247cc40fbLL),
-      reale(0x342bf6LL,0x9f3708d39590dLL),
+      -real(0x2331240c282307b0LL),-reale(2173,0x456299e8e9660LL),
+      -reale(20716,0x42df2018b2010LL),reale(154405,0x43613e2a37c0LL),
+      -reale(270827,0xec43372c34270LL),reale(146546,0xa61bf3c2f7de0LL),
+      reale(26313,0x9ff2a1de69530LL),-reale(32563,0x1c55db833bf05LL),
+      reale(3419126,0x9f3708d39590dLL),
       // C4[1], coeff of eps^2, polynomial in n of order 24
       -real(0x39a9fc22d9600LL),-real(0x47a4ffa857140LL),
       -real(0x59ea353148580LL),-real(0x721982b3023c0LL),
@@ -2140,9 +2123,9 @@ namespace GeographicLib {
       -real(0x16b2ad2884e0280LL),-real(0x2932441ccc746c0LL),
       -real(0x51f4ee722e73200LL),-real(0xb97e18f372a9540LL),
       -real(0x1ff5b9ebacd64180LL),-real(0x7d04fcecbaaf87c0LL),
-      reale(-19432LL,0x6670458324700LL),reale(150594LL,0xe619e547a59c0LL),
-      reale(-294713LL,0x66fc1e44fdf80LL),reale(231559LL,0xe5f0c3a538740LL),
-      reale(-65127LL,0xc75448f9881f6LL),reale(0x342bf6LL,0x9f3708d39590dLL),
+      -reale(19431,0x998fba7cdb900LL),reale(150594,0xe619e547a59c0LL),
+      -reale(294712,0x9903e1bb02080LL),reale(231559,0xe5f0c3a538740LL),
+      -reale(65126,0x38abb70677e0aLL),reale(3419126,0x9f3708d39590dLL),
       // C4[1], coeff of eps^1, polynomial in n of order 25
       -real(0x16b98c18c43f0LL),-real(0x1be76827efc80LL),
       -real(0x2291674649910LL),-real(0x2b3d2747a6820LL),
@@ -2155,19 +2138,19 @@ namespace GeographicLib {
       -real(0x102f2d0b50524f0LL),-real(0x1e1472bfb1ba980LL),
       -real(0x3d69bf9cb587a10LL),-real(0x8ee1210e8c36520LL),
       -real(0x194d332fe8d44930LL),-real(0x6534ccbfa35124c0LL),
-      reale(-15789LL,0xd33b387a8d9b0LL),reale(115779LL,0xf2f861d29c3a0LL),
-      reale(-173670LL,0x138b6d4415a90LL),reale(75980LL,0x9773003236861LL),
-      reale(0x342bf6LL,0x9f3708d39590dLL),
+      -reale(15788,0x2cc4c78572650LL),reale(115779,0xf2f861d29c3a0LL),
+      -reale(173669,0xec7492bbea570LL),reale(75980,0x9773003236861LL),
+      reale(3419126,0x9f3708d39590dLL),
       // C4[2], coeff of eps^26, polynomial in n of order 0
-      real(0x2c2a8cLL),real(0xfe89d46f33LL),
+      2894476,real(0xfe89d46f33LL),
       // C4[2], coeff of eps^25, polynomial in n of order 1
-      -real(0x835f00LL),real(0x557ff0LL),real(0x89825e2a6bLL),
+      -8609536,5603312,real(590597728875LL),
       // C4[2], coeff of eps^24, polynomial in n of order 2
-      -real(0x184be2a300LL),real(0x97a60f680LL),real(0x26a83de30LL),
+      -real(104352359168LL),real(40707880576LL),real(10376961584LL),
       real(0xb18f66b7a5ca3LL),
       // C4[2], coeff of eps^23, polynomial in n of order 3
-      -real(0x265f8c17d00LL),real(0x13bddd35200LL),-real(0xcadd323f00LL),
-      real(0x80e0d83bf0LL),real(0xa1c12e8b2dd1e3LL),
+      -real(0x265f8c17d00LL),real(0x13bddd35200LL),-real(871294451456LL),
+      real(553528081392LL),real(0xa1c12e8b2dd1e3LL),
       // C4[2], coeff of eps^22, polynomial in n of order 4
       -real(0x46e25cf59280LL),real(0x290af5269020LL),-real(0x22f7c7b01940LL),
       real(0xd08f4d0d560LL),real(0x355c24081bcLL),real(0xc015674546693d9LL),
@@ -2175,138 +2158,138 @@ namespace GeographicLib {
       -real(0x326f6045f923c80LL),real(0x1fb1615f9d3a600LL),
       -real(0x1db1797638c1780LL),real(0xe9780531c07300LL),
       -real(0x9d24cc38e5d280LL),real(0x60cf9034bf3868LL),
-      reale(379902LL,0xf53f00fb109e5LL),
+      reale(379902,0xf53f00fb109e5LL),
       // C4[2], coeff of eps^20, polynomial in n of order 6
       -real(0x4837c78c0550480LL),real(0x313ba08613af040LL),
       -real(0x2ee33229a4bc300LL),real(0x1a152ee5f2ae9c0LL),
       -real(0x172de5252da0180LL),real(0x824fa762c0c340LL),
-      real(0x2180172e018ad8LL),reale(379902LL,0xf53f00fb109e5LL),
+      real(0x2180172e018ad8LL),reale(379902,0xf53f00fb109e5LL),
       // C4[2], coeff of eps^19, polynomial in n of order 7
       -real(0x5fc4bec46509e480LL),real(0x48096a7e75900b00LL),
       -real(0x41caf1fb886dd580LL),real(0x28558a32a56ef200LL),
       -real(0x26dce3ddd1a42680LL),real(0x120433e2d2025900LL),
       -real(0xce36e1803df1780LL),real(0x7a135866f905bb8LL),
-      reale(0x56f3f0LL,0x5eb10eb5f946bLL),
+      reale(5698544,0x5eb10eb5f946bLL),
       // C4[2], coeff of eps^18, polynomial in n of order 8
-      reale(-2177LL,0x1ea7a5015eb00LL),real(0x73bced2a00a143a0LL),
+      -reale(2176,0xe1585afea1500LL),real(0x73bced2a00a143a0LL),
       -real(0x5fca97395e84bfc0LL),real(0x418b4cd8fc5e04e0LL),
       -real(0x3e6c34ea7ddb8a80LL),real(0x212422dcacab1620LL),
       -real(0x1f0466b0c7211540LL),real(0xa12130d17045760LL),
-      real(0x29b0aa486315dbcLL),reale(0x56f3f0LL,0x5eb10eb5f946bLL),
+      real(0x29b0aa486315dbcLL),reale(5698544,0x5eb10eb5f946bLL),
       // C4[2], coeff of eps^17, polynomial in n of order 9
-      reale(-3195LL,0xcbf6069e6fe00LL),reale(3129LL,0x198ba10e3f000LL),
-      reale(-2212LL,0x135876d83e200LL),real(0x6cf94ec7bfac7400LL),
+      -reale(3194,0x3409f96190200LL),reale(3129,0x198ba10e3f000LL),
+      -reale(2211,0xeca78927c1e00LL),real(0x6cf94ec7bfac7400LL),
       -real(0x5f04d2df84f0ba00LL),real(0x39318494ff85f800LL),
       -real(0x38939121c731d600LL),real(0x1854a6f7e2957c00LL),
       -real(0x12decef0b13a7200LL),real(0xa9861a018e14120LL),
-      reale(0x56f3f0LL,0x5eb10eb5f946bLL),
+      reale(5698544,0x5eb10eb5f946bLL),
       // C4[2], coeff of eps^16, polynomial in n of order 10
-      reale(-5173LL,0x473b4cca7c600LL),reale(5700LL,0x1d26bd0962f00LL),
-      reale(-3249LL,0x75306f7043800LL),reale(3050LL,0xed985975b4100LL),
-      reale(-2252LL,0x10691cdccaa00LL),real(0x6370a1a9e900d300LL),
+      -reale(5172,0xb8c4b33583a00LL),reale(5700,0x1d26bd0962f00LL),
+      -reale(3248,0x8acf908fbc800LL),reale(3050,0xed985975b4100LL),
+      -reale(2251,0xef96e32335600LL),real(0x6370a1a9e900d300LL),
       -real(0x5c955afee309e400LL),real(0x2eb3ea14003fe500LL),
       -real(0x2e844e36822a7200LL),real(0xd8a8b891f217700LL),
-      real(0x388df4ca3a6fb20LL),reale(0x56f3f0LL,0x5eb10eb5f946bLL),
+      real(0x388df4ca3a6fb20LL),reale(5698544,0x5eb10eb5f946bLL),
       // C4[2], coeff of eps^15, polynomial in n of order 11
-      reale(-11116LL,0x4d006e1393a00LL),reale(11728LL,0x761e1ef822c00LL),
-      reale(-5179LL,0x65d829c0ade00LL),reale(5773LL,0x24fd2adb2f000LL),
-      reale(-3329LL,0xa0f3ce38e0200LL),reale(2908LL,0x836ab328fb400LL),
-      reale(-2292LL,0x9d62f8fb7a600LL),real(0x5681ee23b9ad7800LL),
+      -reale(11115,0xb2ff91ec6c600LL),reale(11728,0x761e1ef822c00LL),
+      -reale(5178,0x9a27d63f52200LL),reale(5773,0x24fd2adb2f000LL),
+      -reale(3328,0x5f0c31c71fe00LL),reale(2908,0x836ab328fb400LL),
+      -reale(2291,0x629d070485a00LL),real(0x5681ee23b9ad7800LL),
       -real(0x56cafdb120433600LL),real(0x21dbd9f992213c00LL),
       -real(0x1d4bdf01a76d9200LL),real(0xf4e0cbd04176b20LL),
-      reale(0x56f3f0LL,0x5eb10eb5f946bLL),
+      reale(5698544,0x5eb10eb5f946bLL),
       // C4[2], coeff of eps^14, polynomial in n of order 12
-      reale(-73827LL,0x61b736418a780LL),reale(32637LL,0x887aa6de960e0LL),
-      reale(-10941LL,0x69b84ebb84640LL),reale(12348LL,0xdd9347a34b3a0LL),
-      reale(-5207LL,0xb9e55bea0c500LL),reale(5776LL,0x82c559a327660LL),
-      reale(-3446LL,0xd48e4a10ec3c0LL),reale(2676LL,0xdbe2bf3d4c920LL),
-      reale(-2314LL,0x93d76112ee280LL),real(0x45af1f46068fcbe0LL),
+      -reale(73826,0x9e48c9be75880LL),reale(32637,0x887aa6de960e0LL),
+      -reale(10940,0x9647b1447b9c0LL),reale(12348,0xdd9347a34b3a0LL),
+      -reale(5206,0x461aa415f3b00LL),reale(5776,0x82c559a327660LL),
+      -reale(3445,0x2b71b5ef13c40LL),reale(2676,0xdbe2bf3d4c920LL),
+      -reale(2313,0x6c289eed11d80LL),real(0x45af1f46068fcbe0LL),
       -real(0x4a646c774fde3ec0LL),real(0x127e48f8affd9ea0LL),
-      real(0x4e336f38ab11704LL),reale(0x56f3f0LL,0x5eb10eb5f946bLL),
+      real(0x4e336f38ab11704LL),reale(5698544,0x5eb10eb5f946bLL),
       // C4[2], coeff of eps^13, polynomial in n of order 13
-      reale(130976LL,0x1a84c1eb6d80LL),reale(-14598LL,0xb0e2756e03a00LL),
-      reale(-76484LL,0xff93a7309a680LL),reale(35388LL,0xd1bf338007b00LL),
-      reale(-10664LL,0xe3def57487f80LL),reale(13004LL,0x14f125ca37c00LL),
-      reale(-5286LL,0xaab28c8cc3880LL),reale(5660LL,0xa57467d557d00LL),
-      reale(-3610LL,0x163a4d9a91180LL),reale(2326LL,0xf26507322be00LL),
-      reale(-2275LL,0x1951f47034a80LL),real(0x30f364de4c777f00LL),
+      reale(130976,0x1a84c1eb6d80LL),-reale(14597,0x4f1d8a91fc600LL),
+      -reale(76483,0x6c58cf65980LL),reale(35388,0xd1bf338007b00LL),
+      -reale(10663,0x1c210a8b78080LL),reale(13004,0x14f125ca37c00LL),
+      -reale(5285,0x554d73733c780LL),reale(5660,0xa57467d557d00LL),
+      -reale(3609,0xe9c5b2656ee80LL),reale(2326,0xf26507322be00LL),
+      -reale(2274,0xe6ae0b8fcb580LL),real(0x30f364de4c777f00LL),
       -real(0x3139417308d0dc80LL),real(0x173bf41713ca3b88LL),
-      reale(0x56f3f0LL,0x5eb10eb5f946bLL),
+      reale(5698544,0x5eb10eb5f946bLL),
       // C4[2], coeff of eps^12, polynomial in n of order 14
-      reale(12302LL,0xe52cc8d8c2180LL),reale(-90163LL,0xdb821dbabdc40LL),
-      reale(136898LL,0x7ace803b76f00LL),reale(-20189LL,0xb7d2bfe8c21c0LL),
-      reale(-79168LL,0x1aef280283c80LL),reale(38835LL,0xfee0572864740LL),
-      reale(-10271LL,0xfbaa65f2c4a00LL),reale(13648LL,0x338b156f30cc0LL),
-      reale(-5469LL,0x7ffbd41c95780LL),reale(5349LL,0x619325bd73240LL),
-      reale(-3822LL,0x57b3a652500LL),real(0x729df2a6c14b77c0LL),
-      reale(-2074LL,0x6c230416d7280LL),real(0x193a4a0699e49d40LL),
-      real(0x6c8a3fc264f2d98LL),reale(0x56f3f0LL,0x5eb10eb5f946bLL),
+      reale(12302,0xe52cc8d8c2180LL),-reale(90162,0x247de245423c0LL),
+      reale(136898,0x7ace803b76f00LL),-reale(20188,0x482d40173de40LL),
+      -reale(79167,0xe510d7fd7c380LL),reale(38835,0xfee0572864740LL),
+      -reale(10270,0x4559a0d3b600LL),reale(13648,0x338b156f30cc0LL),
+      -reale(5468,0x80042be36a880LL),reale(5349,0x619325bd73240LL),
+      -reale(3821,0xffa84c59adb00LL),real(0x729df2a6c14b77c0LL),
+      -reale(2073,0x93dcfbe928d80LL),real(0x193a4a0699e49d40LL),
+      real(0x6c8a3fc264f2d98LL),reale(5698544,0x5eb10eb5f946bLL),
       // C4[2], coeff of eps^11, polynomial in n of order 15
       real(0x12b65c49560e1680LL),real(0x4c91348dd4c57d00LL),
-      reale(12186LL,0xb870c2ef8b380LL),reale(-91200LL,0xb85c60cb26200LL),
-      reale(143440LL,0xa133e98363080LL),reale(-27238LL,0x5076fe0bbc700LL),
-      reale(-81725LL,0xe4f93bf99cd80LL),reale(43231LL,0xcee7486ccec00LL),
-      reale(-9772LL,0x4b82cb486ca80LL),reale(14177LL,0x876b1df11100LL),
-      reale(-5845LL,0xa68f0ab906780LL),reale(4733LL,0x71ff0d3b37600LL),
-      reale(-4035LL,0x511483b19e480LL),real(0x4b0e043dd17f5b00LL),
+      reale(12186,0xb870c2ef8b380LL),-reale(91199,0x47a39f34d9e00LL),
+      reale(143440,0xa133e98363080LL),-reale(27237,0xaf8901f443900LL),
+      -reale(81724,0x1b06c40663280LL),reale(43231,0xcee7486ccec00LL),
+      -reale(9771,0xb47d34b793580LL),reale(14177,0x876b1df11100LL),
+      -reale(5844,0x5970f546f9880LL),reale(4733,0x71ff0d3b37600LL),
+      -reale(4034,0xaeeb7c4e61b80LL),real(0x4b0e043dd17f5b00LL),
       -real(0x5c6dac5851097e80LL),real(0x259ade3cf4689f28LL),
-      reale(0x56f3f0LL,0x5eb10eb5f946bLL),
+      reale(5698544,0x5eb10eb5f946bLL),
       // C4[2], coeff of eps^10, polynomial in n of order 16
       real(0x285b74a086cfe00LL),real(0x61629f583f6fc20LL),
       real(0x11e1f0840e822e40LL),real(0x4a2acb7177936860LL),
-      reale(12009LL,0x162afd0a23e80LL),reale(-92026LL,0xae3949b4a64a0LL),
-      reale(150657LL,0xe159fc0830ec0LL),reale(-36241LL,0x76fc4335e50e0LL),
-      reale(-83843LL,0x70cd1eb127f00LL),reale(48929LL,0x80db803df8d20LL),
-      reale(-9248LL,0xb58ee58c26f40LL),reale(14370LL,0x3118e0d87960LL),
-      reale(-6546LL,0x3055ff6d4bf80LL),reale(3681LL,0xa71da4ef975a0LL),
-      reale(-4056LL,0x942d314a74fc0LL),real(0x201a58611bc4e1e0LL),
-      real(0x8ca8a9bec5eeb0cLL),reale(0x56f3f0LL,0x5eb10eb5f946bLL),
+      reale(12009,0x162afd0a23e80LL),-reale(92025,0x51c6b64b59b60LL),
+      reale(150657,0xe159fc0830ec0LL),-reale(36240,0x8903bcca1af20LL),
+      -reale(83842,0x8f32e14ed8100LL),reale(48929,0x80db803df8d20LL),
+      -reale(9247,0x4a711a73d90c0LL),reale(14370,0x3118e0d87960LL),
+      -reale(6545,0xcfaa0092b4080LL),reale(3681,0xa71da4ef975a0LL),
+      -reale(4055,0x6bd2ceb58b040LL),real(0x201a58611bc4e1e0LL),
+      real(0x8ca8a9bec5eeb0cLL),reale(5698544,0x5eb10eb5f946bLL),
       // C4[2], coeff of eps^9, polynomial in n of order 17
       real(0x8f791b0d72f300LL),real(0x116eee5fb7db000LL),
       real(0x2544a69b0af6d00LL),real(0x5ae50a5c0f6ba00LL),
       real(0x10e6ab279c402700LL),real(0x472bda650b6c4400LL),
-      reale(11750LL,0x4a89b28f5a100LL),reale(-92513LL,0xe33280e9ece00LL),
-      reale(158574LL,0x53a9410005b00LL),reale(-47897LL,0x404729fced800LL),
-      reale(-84920LL,0x4b5af2b30d500LL),reale(56401LL,0x32e93db7ce200LL),
-      reale(-8957LL,0xc7ca02b378f00LL),reale(13782LL,0xdee88bf296c00LL),
-      reale(-7713LL,0x851267fe50900LL),reale(2126LL,0x5791e5314f600LL),
-      reale(-3274LL,0x16bff2e69c300LL),real(0x4230ff2c7e6defd0LL),
-      reale(0x56f3f0LL,0x5eb10eb5f946bLL),
+      reale(11750,0x4a89b28f5a100LL),-reale(92512,0x1ccd7f1613200LL),
+      reale(158574,0x53a9410005b00LL),-reale(47896,0xbfb8d60312800LL),
+      -reale(84919,0xb4a50d4cf2b00LL),reale(56401,0x32e93db7ce200LL),
+      -reale(8956,0x3835fd4c87100LL),reale(13782,0xdee88bf296c00LL),
+      -reale(7712,0x7aed9801af700LL),reale(2126,0x5791e5314f600LL),
+      -reale(3273,0xe9400d1963d00LL),real(0x4230ff2c7e6defd0LL),
+      reale(5698544,0x5eb10eb5f946bLL),
       // C4[2], coeff of eps^8, polynomial in n of order 18
       real(0x289b91a48ebf00LL),real(0x45ee5b14465380LL),
       real(0x7f92734c023800LL),real(0xfa5ad187871c80LL),
       real(0x21cddd2df61b100LL),real(0x5372a978dde2580LL),
       real(0xfbd02001ed7aa00LL),real(0x436e93187af7ee80LL),
-      reale(11383LL,0x2dcd21f7ea300LL),reale(-92460LL,0x762ee68f780LL),
-      reale(167131LL,0xf0a2167d11c00LL),reale(-63200LL,0xf80168c9dc080LL),
-      reale(-83767LL,0xf5fd214199500LL),reale(66187LL,0xcedf7a1cac980LL),
-      reale(-9609LL,0x1045496e28e00LL),reale(11585LL,0x75dbe72dc9280LL),
-      reale(-9221LL,0xdd36d29668700LL),real(0x18709d3bc0679b80LL),
-      real(0x5b7e325c6742390LL),reale(0x56f3f0LL,0x5eb10eb5f946bLL),
+      reale(11383,0x2dcd21f7ea300LL),-reale(92459,0xff89d11970880LL),
+      reale(167131,0xf0a2167d11c00LL),-reale(63199,0x7fe973623f80LL),
+      -reale(83766,0xa02debe66b00LL),reale(66187,0xcedf7a1cac980LL),
+      -reale(9608,0xefbab691d7200LL),reale(11585,0x75dbe72dc9280LL),
+      -reale(9220,0x22c92d6997900LL),real(0x18709d3bc0679b80LL),
+      real(0x5b7e325c6742390LL),reale(5698544,0x5eb10eb5f946bLL),
       // C4[2], coeff of eps^7, polynomial in n of order 19
       real(0xd108e5f6f6100LL),real(0x14cfb44a7f1600LL),
       real(0x227bc5972bab00LL),real(0x3bea4dd1053000LL),
       real(0x6e5f06564db500LL),real(0xdaf2ed1ea74a00LL),
       real(0x1dec9104c41ff00LL),real(0x4ae6e1cc221e400LL),
       real(0xe5bde12a5950900LL),real(0x3ec229ad8ff17e00LL),
-      reale(10869LL,0xc2e1de8335300LL),reale(-91551LL,0x2adfd2129800LL),
-      reale(176075LL,0x65a5499a95d00LL),reale(-83532LL,0x676df8fc1b200LL),
-      reale(-77995LL,0xeeecccb63a700LL),reale(78539LL,0xb0828e93b4c00LL),
-      reale(-12982LL,0x9261e28eeb100LL),reale(6537LL,0x5c156837be600LL),
-      reale(-9405LL,0x6848a436fb00LL),reale(2071LL,0xc05f52f113a50LL),
-      reale(0x56f3f0LL,0x5eb10eb5f946bLL),
+      reale(10869,0xc2e1de8335300LL),-reale(91550,0xfd5202ded6800LL),
+      reale(176075,0x65a5499a95d00LL),-reale(83531,0x98920703e4e00LL),
+      -reale(77994,0x11133349c5900LL),reale(78539,0xb0828e93b4c00LL),
+      -reale(12981,0x6d9e1d7114f00LL),reale(6537,0x5c156837be600LL),
+      -reale(9404,0xf97b75bc90500LL),reale(2071,0xc05f52f113a50LL),
+      reale(5698544,0x5eb10eb5f946bLL),
       // C4[2], coeff of eps^6, polynomial in n of order 20
       real(0x4748ad3ff9e80LL),real(0x6b926f7e60d60LL),real(0xa71fa4085b840LL),
       real(0x10c991e0a3ab20LL),real(0x1c15b3b145b200LL),
       real(0x314f7c7c43f8e0LL),real(0x5be1ff458cabc0LL),
       real(0xb89930a80796a0LL),real(0x199734a3c07c580LL),
       real(0x411aa25f2292460LL),real(0xcb87e4542581f40LL),
-      real(0x38e7a442bb914220LL),reale(10156LL,0x20944a9a6d900LL),
-      reale(-89266LL,0xae2af5b0a8fe0LL),reale(184683LL,0x63f792d3912c0LL),
-      reale(-110681LL,0x7635192f5ada0LL),reale(-62728LL,0xff020b803ec80LL),
-      reale(91791LL,0x3f8035a7d3b60LL),reale(-22896LL,0x337bb36408640LL),
+      real(0x38e7a442bb914220LL),reale(10156,0x20944a9a6d900LL),
+      -reale(89265,0x51d50a4f57020LL),reale(184683,0x63f792d3912c0LL),
+      -reale(110680,0x89cae6d0a5260LL),-reale(62727,0xfdf47fc1380LL),
+      reale(91791,0x3f8035a7d3b60LL),-reale(22895,0xcc844c9bf79c0LL),
       -real(0x5652aea374b626e0LL),-real(0x38edb32bcbdda4acLL),
-      reale(0x56f3f0LL,0x5eb10eb5f946bLL),
+      reale(5698544,0x5eb10eb5f946bLL),
       // C4[2], coeff of eps^5, polynomial in n of order 21
       real(0x185346b40be80LL),real(0x234a30239ea00LL),real(0x345f5bcfbb580LL),
       real(0x4fc2f91719900LL),real(0x7d257d9ac0c80LL),real(0xcb49d34f58800LL),
@@ -2314,11 +2297,11 @@ namespace GeographicLib {
       real(0x483bd94933da80LL),real(0x935c1fd3f92600LL),
       real(0x14c807d3436d180LL),real(0x35e9298d8a45500LL),
       real(0xac6bf9cef462880LL),real(0x318eb0c51232c400LL),
-      reale(9164LL,0xf22328f6f9f80LL),reale(-84729LL,0x87534c86a3300LL),
-      reale(191114LL,0x47ac3650f680LL),reale(-146269LL,0x9709796906200LL),
-      reale(-28125LL,0x50e5dddf7ed80LL),reale(95633LL,0xf3c35e98b1100LL),
-      reale(-42102LL,0x3348969c24480LL),reale(4250LL,0xa99770cb50078LL),
-      reale(0x56f3f0LL,0x5eb10eb5f946bLL),
+      reale(9164,0xf22328f6f9f80LL),-reale(84728,0x78acb3795cd00LL),
+      reale(191114,0x47ac3650f680LL),-reale(146268,0x68f68696f9e00LL),
+      -reale(28124,0xaf1a222081280LL),reale(95633,0xf3c35e98b1100LL),
+      -reale(42101,0xccb76963dbb80LL),reale(4250,0xa99770cb50078LL),
+      reale(5698544,0x5eb10eb5f946bLL),
       // C4[2], coeff of eps^4, polynomial in n of order 22
       real(0x7c86a4240e80LL),real(0xaf5db2064cc0LL),real(0xfb958bed1300LL),
       real(0x17080cf847940LL),real(0x2288f92359780LL),real(0x352f6beaa45c0LL),
@@ -2326,11 +2309,11 @@ namespace GeographicLib {
       real(0x1af0609151bec0LL),real(0x33c8072244a500LL),
       real(0x6bad7af287eb40LL),real(0xf83a707fcba980LL),
       real(0x293d0a92ebeb7c0LL),real(0x87aa233703e6e00LL),
-      real(0x2855283ce7ee6440LL),reale(7785LL,0x74e297d243280LL),
-      reale(-76428LL,0xc6fbe2f330c0LL),reale(190726LL,0x777542b243700LL),
-      reale(-188316LL,0xefcf1a2055d40LL),reale(42101LL,0xccb76963dbb80LL),
-      reale(46959LL,0xb31b5803129c0LL),reale(-23683LL,0xbcd8d4b7d4688LL),
-      reale(0x56f3f0LL,0x5eb10eb5f946bLL),
+      real(0x2855283ce7ee6440LL),reale(7785,0x74e297d243280LL),
+      -reale(76427,0xf39041d0ccf40LL),reale(190726,0x777542b243700LL),
+      -reale(188315,0x1030e5dfaa2c0LL),reale(42101,0xccb76963dbb80LL),
+      reale(46959,0xb31b5803129c0LL),-reale(23682,0x43272b482b978LL),
+      reale(5698544,0x5eb10eb5f946bLL),
       // C4[2], coeff of eps^3, polynomial in n of order 23
       real(0x21a7e921c980LL),real(0x2e51be6e8f00LL),real(0x40c19fbec480LL),
       real(0x5c1e6062c200LL),real(0x8599d6a9df80LL),real(0xc60160b77500LL),
@@ -2339,10 +2322,10 @@ namespace GeographicLib {
       real(0x1f5b1b59928b80LL),real(0x42dd3cfeae4100LL),
       real(0x9e90e4efcb8680LL),real(0x1b33e235264b400LL),
       real(0x5cdaf2eb93f2180LL),real(0x1cd398a25fa82700LL),
-      reale(5865LL,0x9368046121c80LL),reale(-61724LL,0x1837736455a00LL),
-      reale(171645LL,0xcc7599f993780LL),reale(-213748LL,0x66d2fca290d00LL),
-      reale(126305LL,0x66263c2b93280LL),reale(-28945LL,0x341e78b58f18LL),
-      reale(0x56f3f0LL,0x5eb10eb5f946bLL),
+      reale(5865,0x9368046121c80LL),-reale(61723,0xe7c88c9baa600LL),
+      reale(171645,0xcc7599f993780LL),-reale(213747,0x992d035d6f300LL),
+      reale(126305,0x66263c2b93280LL),-reale(28944,0xfcbe1874a70e8LL),
+      reale(5698544,0x5eb10eb5f946bLL),
       // C4[2], coeff of eps^2, polynomial in n of order 24
       real(0x5f08c3cb900LL),real(0x807038c0ca0LL),real(0xaffaed32440LL),
       real(0xf4c5be483e0LL),real(0x15a2490f6f80LL),real(0x1f28eae1cb20LL),
@@ -2351,159 +2334,158 @@ namespace GeographicLib {
       real(0x354168d7adc80LL),real(0x64e3bca9a8820LL),real(0xcc99ed98827c0LL),
       real(0x1c3fb9ad58ff60LL),real(0x45c01ca2899300LL),
       real(0xc88852534b86a0LL),real(0x2d1eac1f8a97e40LL),
-      real(0xee21e1c2e9afde0LL),reale(3238LL,0x9997f46a24980LL),
-      reale(-36435LL,0xc0128255e4520LL),reale(105254LL,0x7fca8779a54c0LL),
-      reale(-115780LL,0xd079e2d63c60LL),reale(43417LL,0x7b1d24aefa95cLL),
-      reale(0x56f3f0LL,0x5eb10eb5f946bLL),
+      real(0xee21e1c2e9afde0LL),reale(3238,0x9997f46a24980LL),
+      -reale(36434,0x3fed7daa1bae0LL),reale(105254,0x7fca8779a54c0LL),
+      -reale(115779,0xf2f861d29c3a0LL),reale(43417,0x7b1d24aefa95cLL),
+      reale(5698544,0x5eb10eb5f946bLL),
       // C4[3], coeff of eps^26, polynomial in n of order 0
-      real(433472LL),real(0x10f81f3a9dLL),
+      433472,real(72882272925LL),
       // C4[3], coeff of eps^25, polynomial in n of order 1
-      real(0x48b3200LL),real(0x130f510LL),real(0x958a9334879LL),
+      real(76231168),real(19985680),real(0x958a9334879LL),
       // C4[3], coeff of eps^24, polynomial in n of order 2
-      real(0x39ce1000LL),-real(0x2d16c800LL),real(0x197c4e20LL),
-      real(0x33a763b318f5LL),
+      real(969805824),-real(756467712),real(427576864),real(0x33a763b318f5LL),
       // C4[3], coeff of eps^23, polynomial in n of order 3
       real(0xe7cfd39aa00LL),-real(0xe6239d55400LL),real(0x44ffe5cce00LL),
       real(0x123fa804df0LL),real(0x73400ac32a3f24fLL),
       // C4[3], coeff of eps^22, polynomial in n of order 4
-      real(0x12e19d548000LL),-real(0x130f2c71c000LL),real(0x7e08a8b4000LL),
+      real(633551529LL<<15),-real(0x130f2c71c000LL),real(0x7e08a8b4000LL),
       -real(0x69e0a004000LL),real(0x39175efa340LL),real(0x59a39697cb86721LL),
       // C4[3], coeff of eps^21, polynomial in n of order 5
       real(0xe1a59555817c700LL),-real(0xce92ef160470400LL),
       real(0x6a50b28bc94d100LL),-real(0x6ec5ce0328fa200LL),
       real(0x1e2919432b73b00LL),real(0x81169f96b647f8LL),
-      reale(0x2893f8LL,0xb4b906dd74543LL),
+      reale(2659320,0xb4b906dd74543LL),
       // C4[3], coeff of eps^20, polynomial in n of order 6
       real(0x4a951ec0f743800LL),-real(0x39128060ba74400LL),
       real(0x258d1de3ebd5000LL),-real(0x25e6a8ece22dc00LL),
       real(0xe953314d336800LL),-real(0xd6fbba5b80b400LL),
-      real(0x6d3d6d3e79ea90LL),reale(531864LL,0x2425015f7daa7LL),
+      real(0x6d3d6d3e79ea90LL),reale(531864,0x2425015f7daa7LL),
       // C4[3], coeff of eps^19, polynomial in n of order 7
       real(0x7366685d2da15300LL),-real(0x46390dd9eadeba00LL),
       real(0x3de3739917104900LL),-real(0x34e3ad131262bc00LL),
       real(0x1ae64995e9a59f00LL),-real(0x1d6cea9b561f3e00LL),
       real(0x70d3407961b9500LL),real(0x1ea45bc7b594048LL),
-      reale(0x79bbeaLL,0x1e2b14985cfc9LL),
+      reale(7977962,0x1e2b14985cfc9LL),
       // C4[3], coeff of eps^18, polynomial in n of order 8
-      reale(2991LL,0x40e0c1e8a0000LL),-real(0x5c0b6a6cd5328000LL),
+      reale(2991,8707772229LL<<17),-real(0x5c0b6a6cd5328000LL),
       real(0x6cf3b04ea6358000LL),-real(0x47da0c907a958000LL),
       real(0x334344c895550000LL),-real(0x3257cd9b75628000LL),
       real(0x11d874d9e96c8000LL),-real(0x1273b92365d58000LL),
-      real(0x8b048eddb8dae80LL),reale(0x79bbeaLL,0x1e2b14985cfc9LL),
+      real(0x8b048eddb8dae80LL),reale(7977962,0x1e2b14985cfc9LL),
       // C4[3], coeff of eps^17, polynomial in n of order 9
-      reale(4599LL,0x20675bc677c00LL),reale(-2191LL,0x95924f3b76000LL),
-      reale(3019LL,0xad2c946b04400LL),-real(0x5cc951aa5f7ff800LL),
+      reale(4599,0x20675bc677c00LL),-reale(2190,0x6a6db0c48a000LL),
+      reale(3019,0xad2c946b04400LL),-real(0x5cc951aa5f7ff800LL),
       real(0x61f2b89850d68c00LL),-real(0x49aa7ace4eb85000LL),
       real(0x26482ceb1d4d5400LL),-real(0x2b88fb70a186a800LL),
       real(0x8bf6f0c9a679c00LL),real(0x26ce624431e62e0LL),
-      reale(0x79bbeaLL,0x1e2b14985cfc9LL),
+      reale(7977962,0x1e2b14985cfc9LL),
       // C4[3], coeff of eps^16, polynomial in n of order 10
       real(0x383bee2531d2a000LL),-real(0x2821094d061d1000LL),
       real(0x2c347b321d4c8000LL),-real(0x125d6736b20ff000LL),
       real(0x1a6c4162f9ae6000LL),-real(0xdca07dd1a07d000LL),
       real(0xba2cc7913be4000LL),-real(0xa8a49fd40deb000LL),
       real(0x36dcb24ee422000LL),-real(0x4159df2ed6e9000LL),
-      real(0x1bdad6784709c40LL),reale(0x1163fcLL,0xdfbd02f131dafLL),
+      real(0x1bdad6784709c40LL),reale(1139708,0xdfbd02f131dafLL),
       // C4[3], coeff of eps^15, polynomial in n of order 11
-      reale(7381LL,0x14c34c0c1f400LL),reale(-13258LL,0xa462523f3800LL),
-      reale(7086LL,0x404eb1053bc00LL),reale(-4055LL,0x1b129d1616000LL),
-      reale(5287LL,0x17e93cc880400LL),-real(0x7bc6aed7afe87800LL),
-      reale(2758LL,0x364797381cc00LL),-real(0x676ee80244a35000LL),
+      reale(7381,0x14c34c0c1f400LL),-reale(13257,0xf5b9dadc0c800LL),
+      reale(7086,0x404eb1053bc00LL),-reale(4054,0xe4ed62e9ea000LL),
+      reale(5287,0x17e93cc880400LL),-real(0x7bc6aed7afe87800LL),
+      reale(2758,0x364797381cc00LL),-real(0x676ee80244a35000LL),
       real(0x3b6d32d9ca041400LL),-real(0x43e3e0c280942800LL),
       real(0xa86d2e316b1dc00LL),real(0x300bec0027818e0LL),
-      reale(0x79bbeaLL,0x1e2b14985cfc9LL),
+      reale(7977962,0x1e2b14985cfc9LL),
       // C4[3], coeff of eps^14, polynomial in n of order 12
-      reale(66948LL,0x4f30b3f870000LL),reale(-52647LL,0x9795c7cc58000LL),
-      reale(7561LL,0xd0b8bda7a8000LL),reale(-13027LL,0x827613ff28000LL),
-      reale(8130LL,0xd3b0b583a0000LL),reale(-3524LL,0x2d6f89c1d8000LL),
-      reale(5530LL,0x8b9708b698000LL),-real(0x7e52c154efd58000LL),
-      reale(2356LL,0x7673a06ad0000LL),-real(0x6f6a34d21b028000LL),
+      reale(66948,0x4f30b3f870000LL),-reale(52646,0x686a3833a8000LL),
+      reale(7561,0xd0b8bda7a8000LL),-reale(13026,0x7d89ec00d8000LL),
+      reale(8130,0xd3b0b583a0000LL),-reale(3523,0xd290763e28000LL),
+      reale(5530,0x8b9708b698000LL),-real(0x7e52c154efd58000LL),
+      reale(2356,0x7673a06ad0000LL),-real(0x6f6a34d21b028000LL),
       real(0x220d8444fca88000LL),-real(0x2fac85fa2e858000LL),
-      real(0x11c823101280e280LL),reale(0x79bbeaLL,0x1e2b14985cfc9LL),
+      real(0x11c823101280e280LL),reale(7977962,0x1e2b14985cfc9LL),
       // C4[3], coeff of eps^13, polynomial in n of order 13
-      reale(-129174LL,0xa7b7643d7c700LL),reale(59789LL,0xf9dc41e63d400LL),
-      reale(65695LL,0x9083acc5cc100LL),reale(-58446LL,0xd0d3391e9e600LL),
-      reale(8184LL,0x5e79915d1b00LL),reale(-12354LL,0x7c56a698f3800LL),
-      reale(9463LL,0x4211f61d49500LL),reale(-2967LL,0x1ed471cad8a00LL),
-      reale(5543LL,0x52a28a556ef00LL),reale(-2250LL,0x1e08b645e9c00LL),
+      -reale(129173,0x58489bc283900LL),reale(59789,0xf9dc41e63d400LL),
+      reale(65695,0x9083acc5cc100LL),-reale(58445,0x2f2cc6e161a00LL),
+      reale(8184,0x5e79915d1b00LL),-reale(12353,0x83a959670c800LL),
+      reale(9463,0x4211f61d49500LL),-reale(2966,0xe12b8e3527600LL),
+      reale(5543,0x52a28a556ef00LL),-reale(2249,0xe1f749ba16400LL),
       real(0x6b0d1cda5c5fe900LL),-real(0x70ab303245f3d200LL),
       real(0xb596d16f1a34300LL),real(0x35b4de912478078LL),
-      reale(0x79bbeaLL,0x1e2b14985cfc9LL),
+      reale(7977962,0x1e2b14985cfc9LL),
       // C4[3], coeff of eps^12, polynomial in n of order 14
-      reale(-6934LL,0xf03d448429800LL),reale(63382LL,0x668969a617c00LL),
-      reale(-132590LL,0xf420d1877000LL),reale(69768LL,0x70d2052fd2400LL),
-      reale(63007LL,0x6d053a2cb4800LL),reale(-65234LL,0x47d61e47e8c00LL),
-      reale(9601LL,0xec9983923a000LL),reale(-11043LL,0xbce846bd33400LL),
-      reale(11048LL,0xa50acd625f800LL),reale(-2546LL,0x83680e9e89c00LL),
-      reale(5107LL,0xc83f2d67d000LL),reale(-2698LL,0x7a1b733ac4400LL),
+      -reale(6933,0xfc2bb7bd6800LL),reale(63382,0x668969a617c00LL),
+      -reale(132589,0xf0bdf2e789000LL),reale(69768,0x70d2052fd2400LL),
+      reale(63007,0x6d053a2cb4800LL),-reale(65233,0xb829e1b817400LL),
+      reale(9601,0xec9983923a000LL),-reale(11042,0x4317b942ccc00LL),
+      reale(11048,0xa50acd625f800LL),-reale(2545,0x7c97f16176400LL),
+      reale(5107,0xc83f2d67d000LL),-reale(2697,0x85e48cc53bc00LL),
       real(0x36af107261fea800LL),-real(0x57b6b3b8f7f45400LL),
-      real(0x1b355635bf037310LL),reale(0x79bbeaLL,0x1e2b14985cfc9LL),
+      real(0x1b355635bf037310LL),reale(7977962,0x1e2b14985cfc9LL),
       // C4[3], coeff of eps^11, polynomial in n of order 15
       -real(0x718d19ce618f700LL),-real(0x22292bb4d2a0a600LL),
-      reale(-6562LL,0x84471fa4f9b00LL),reale(61876LL,0xa080215cbc400LL),
-      reale(-135760LL,0x93f5da0ef4d00LL),reale(81504LL,0x4116e653fae00LL),
-      reale(58147LL,0xb03676e9edf00LL),reale(-73012LL,0x28a4ca281d800LL),
-      reale(12405LL,0x6d2fd911f1100LL),reale(-8887LL,0x205adeb490200LL),
-      reale(12677LL,0x826d436a8a300LL),reale(-2578LL,0x92881320bec00LL),
-      reale(3947LL,0x879d1c7c5500LL),reale(-3193LL,0x6a0d793d15600LL),
+      -reale(6561,0x7bb8e05b06500LL),reale(61876,0xa080215cbc400LL),
+      -reale(135759,0x6c0a25f10b300LL),reale(81504,0x4116e653fae00LL),
+      reale(58147,0xb03676e9edf00LL),-reale(73011,0xd75b35d7e2800LL),
+      reale(12405,0x6d2fd911f1100LL),-reale(8886,0xdfa5214b6fe00LL),
+      reale(12677,0x826d436a8a300LL),-reale(2577,0x6d77ecdf41400LL),
+      reale(3947,0x879d1c7c5500LL),-reale(3192,0x95f286c2eaa00LL),
       real(0x7343398f272e700LL),real(0x20b3728b7b6b2d8LL),
-      reale(0x79bbeaLL,0x1e2b14985cfc9LL),
+      reale(7977962,0x1e2b14985cfc9LL),
       // C4[3], coeff of eps^10, polynomial in n of order 16
       -real(0xaaaed768da0000LL),-real(0x1d8d58546174000LL),
       -real(0x650ff776c6dc000LL),-real(0x1f0fa133b6eac000LL),
-      reale(-6126LL,0x7974ea8448000LL),reale(59813LL,0x741ec012c000LL),
-      reale(-138412LL,0x58b7c4d32c000LL),reale(95264LL,0x22057cd374000LL),
-      reale(50003LL,0x3a5ca8a530000LL),reale(-81503LL,0x84cf1d8c000LL),
-      reale(17542LL,0xf2776c79b4000LL),reale(-5813LL,0x39c49c84d4000LL),
-      reale(13748LL,0x38a6c4d018000LL),reale(-3548LL,0x4094081eac000LL),
-      real(0x78ab12d1827bc000LL),reale(-2958LL,0x94db7ad074000LL),
-      real(0x2bef42096127d7c0LL),reale(0x79bbeaLL,0x1e2b14985cfc9LL),
+      -reale(6125,0x868b157bb8000LL),reale(59813,0x741ec012c000LL),
+      -reale(138411,0xa7483b2cd4000LL),reale(95264,0x22057cd374000LL),
+      reale(50003,0x3a5ca8a530000LL),-reale(81502,0xff7b30e274000LL),
+      reale(17542,0xf2776c79b4000LL),-reale(5812,0xc63b637b2c000LL),
+      reale(13748,0x38a6c4d018000LL),-reale(3547,0xbf6bf7e154000LL),
+      real(0x78ab12d1827bc000LL),-reale(2957,0x6b24852f8c000LL),
+      real(0x2bef42096127d7c0LL),reale(7977962,0x1e2b14985cfc9LL),
       // C4[3], coeff of eps^9, polynomial in n of order 17
       -real(0x3cadc0edd6600LL),-real(0x8587ee4c4e000LL),
       -real(0x14633459f95a00LL),-real(0x397bc2059d8400LL),
       -real(0xc89f8adb490e00LL),-real(0x3f2a86a64b5a800LL),
-      -real(0x32218961953c0200LL),reale(8146LL,0xa930f21b73400LL),
-      reale(-20016LL,0x74e96760e4a00LL),reale(15890LL,0x8aa3fb72d9000LL),
-      reale(5271LL,0xbcd5aeda65600LL),reale(-12823LL,0x6bdb3dd51ec00LL),
-      reale(3774LL,0x46bb658aca200LL),-real(0x148a80159bb73800LL),
+      -real(0x32218961953c0200LL),reale(8146,0xa930f21b73400LL),
+      -reale(20015,0x8b16989f1b600LL),reale(15890,0x8aa3fb72d9000LL),
+      reale(5271,0xbcd5aeda65600LL),-reale(12822,0x9424c22ae1400LL),
+      reale(3774,0x46bb658aca200LL),-real(0x148a80159bb73800LL),
       real(0x736580900f31ae00LL),-real(0x336f49c74ee95c00LL),
       -real(0x249e756eeea0600LL),-real(0x13841fc89043bb0LL),
-      reale(0x1163fcLL,0xdfbd02f131dafLL),
+      reale(1139708,0xdfbd02f131dafLL),
       // C4[3], coeff of eps^8, polynomial in n of order 18
       -real(0x5318540751000LL),-real(0xa0702ad537800LL),
       -real(0x14a9549a688000LL),-real(0x2e31b9dc878800LL),
       -real(0x72dceb1c83f000LL),-real(0x14a6c8c8df91800LL),
       -real(0x49c3e43ec426000LL),-real(0x17df3e19aed32800LL),
-      reale(-5018LL,0x6431109e13000LL),reale(53301LL,0x74feac5bf4800LL),
-      reale(-140140LL,0xa8f9e9b6bc000LL),reale(129320LL,0x1fd8eca933800LL),
-      reale(16403LL,0x87db178e25000LL),reale(-95279LL,0xe19a1987da800LL),
-      reale(40665LL,0x6f4b03ec9e000LL),-real(0x1c82af8b65ac6800LL),
-      reale(8049LL,0x334ede6a77000LL),reale(-7541LL,0xfa4ef74ea0800LL),
-      real(0x49ca297e3ffdbce0LL),reale(0x79bbeaLL,0x1e2b14985cfc9LL),
+      -reale(5017,0x9bceef61ed000LL),reale(53301,0x74feac5bf4800LL),
+      -reale(140139,0x5706164944000LL),reale(129320,0x1fd8eca933800LL),
+      reale(16403,0x87db178e25000LL),-reale(95278,0x1e65e67825800LL),
+      reale(40665,0x6f4b03ec9e000LL),-real(0x1c82af8b65ac6800LL),
+      reale(8049,0x334ede6a77000LL),-reale(7540,0x5b108b15f800LL),
+      real(0x49ca297e3ffdbce0LL),reale(7977962,0x1e2b14985cfc9LL),
       // C4[3], coeff of eps^7, polynomial in n of order 19
       -real(0x11fa490472e00LL),-real(0x1fe0e98340400LL),
       -real(0x3b2a552443a00LL),-real(0x73f5544ad2000LL),
       -real(0xf2e5765f90600LL),-real(0x2290ce0f423c00LL),
       -real(0x57b83400ee1200LL),-real(0x1023f65b9bfd800LL),
       -real(0x3b36c6db61bde00LL),-real(0x13c7b72049527400LL),
-      reale(-4324LL,0x8c4173b351600LL),reale(48359LL,0x7d21dc7197000LL),
-      reale(-137344LL,0x3e76a768c4a00LL),reale(148676LL,0xd51cb5c775400LL),
-      reale(-14755LL,0x5760f43613e00LL),reale(-92176LL,0xcc2ef6d3ab800LL),
-      reale(60290LL,0x88af4d43b7200LL),reale(-5856LL,0x7368e62f71c00LL),
+      -reale(4323,0x73be8c4caea00LL),reale(48359,0x7d21dc7197000LL),
+      -reale(137343,0xc18958973b600LL),reale(148676,0xd51cb5c775400LL),
+      -reale(14754,0xa89f0bc9ec200LL),-reale(92175,0x33d1092c54800LL),
+      reale(60290,0x88af4d43b7200LL),-reale(5855,0x8c9719d08e400LL),
       -real(0x48b16aa4982d9a00LL),-real(0x51dba59b00547450LL),
-      reale(0x79bbeaLL,0x1e2b14985cfc9LL),
+      reale(7977962,0x1e2b14985cfc9LL),
       // C4[3], coeff of eps^6, polynomial in n of order 20
       -real(0x3f0527da8000LL),-real(0x69410a894000LL),-real(0xb5f68cf74000LL),
-      -real(0x14766cd18c000LL),-real(0x2696134420000LL),
+      -real(0x14766cd18c000LL),-real(5178956321LL<<17),
       -real(0x4cf42ca274000LL),-real(0xa45199d7cc000LL),
       -real(0x17e337e696c000LL),-real(0x3e169088698000LL),
       -real(0xbbd1c494494000LL),-real(0x2c70014b4ca4000LL),
-      -real(0xf67e7406420c000LL),reale(-3525LL,0x349c0ad9f0000LL),
-      reale(41859LL,0x1cfdfa000c000LL),reale(-129840LL,0x6d28af104000LL),
-      reale(166586LL,0x5d10da3394000LL),reale(-59707LL,0xa04083fc78000LL),
-      reale(-68021LL,0x5fb808ba6c000LL),reale(75721LL,0x1307a9002c000LL),
-      reale(-24385LL,0x3f4ba28674000LL),real(0x6534ccbfa35124c0LL),
-      reale(0x79bbeaLL,0x1e2b14985cfc9LL),
+      -real(0xf67e7406420c000LL),-reale(3524,0xcb63f52610000LL),
+      reale(41859,0x1cfdfa000c000LL),-reale(129839,0xf92d750efc000LL),
+      reale(166586,0x5d10da3394000LL),-reale(59706,0x5fbf7c0388000LL),
+      -reale(68020,0xa047f74594000LL),reale(75721,0x1307a9002c000LL),
+      -reale(24384,0xc0b45d798c000LL),real(0x6534ccbfa35124c0LL),
+      reale(7977962,0x1e2b14985cfc9LL),
       // C4[3], coeff of eps^5, polynomial in n of order 21
       -real(0xcd30266b700LL),-real(0x147d4e1fec00LL),-real(0x21a6b4a64100LL),
       -real(0x390579acce00LL),-real(0x6423741d2b00LL),-real(0xb749b833f000LL),
@@ -2511,40 +2493,40 @@ namespace GeographicLib {
       -real(0x61e5d62301f00LL),-real(0xe995b2fcff400LL),
       -real(0x270c826fb7a900LL),-real(0x7a09e7f3045600LL),
       -real(0x1dfb4c385ed9300LL),-real(0xaddceca1091f800LL),
-      reale(-2625LL,0x3ba17c0246300LL),reale(33433LL,0x20d0a109f6600LL),
-      reale(-114657LL,0x5c2192fdc7900LL),reale(175907LL,0x1d4b03fe80400LL),
-      reale(-116169LL,0x84e81ccb0ef00LL),reale(-3811LL,0xe1e3d16502200LL),
-      reale(45340LL,0x664f5dce00500LL),reale(-17206LL,0xf008bd8c1d988LL),
-      reale(0x79bbeaLL,0x1e2b14985cfc9LL),
+      -reale(2624,0xc45e83fdb9d00LL),reale(33433,0x20d0a109f6600LL),
+      -reale(114656,0xa3de6d0238700LL),reale(175907,0x1d4b03fe80400LL),
+      -reale(116168,0x7b17e334f1100LL),-reale(3810,0x1e1c2e9afde00LL),
+      reale(45340,0x664f5dce00500LL),-reale(17205,0xff74273e2678LL),
+      reale(7977962,0x1e2b14985cfc9LL),
       // C4[3], coeff of eps^4, polynomial in n of order 22
-      -real(0xb6a5fc8800LL),-real(0x11a0a388400LL),-real(0x1bda05d7000LL),
+      -real(784468838400LL),-real(0x11a0a388400LL),-real(0x1bda05d7000LL),
       -real(0x2d25cb21c00LL),-real(0x4b5283d5800LL),-real(0x81d5381f400LL),
       -real(0xe84e582c000LL),-real(0x1b2017768c00LL),-real(0x354f35942800LL),
       -real(0x6f49195e6400LL),-real(0xf9ffb1d81000LL),-real(0x267769207fc00LL),
       -real(0x6a9801634f800LL),-real(0x15adc2fc41d400LL),
       -real(0x5947d2bb916000LL),-real(0x222d7eabcda6c00LL),
-      -real(0x22707489da53c800LL),reale(7620LL,0x3c385d35fbc00LL),
-      reale(-29198LL,0x7793d371d5000LL),reale(53341LL,0xa58a8c79e2400LL),
-      reale(-51818LL,0x6680b95db6800LL),reale(25908LL,0xccbfa35124c00LL),
-      reale(-5263LL,0x466912d384890LL),reale(0x2893f8LL,0xb4b906dd74543LL),
+      -real(0x22707489da53c800LL),reale(7620,0x3c385d35fbc00LL),
+      -reale(29197,0x886c2c8e2b000LL),reale(53341,0xa58a8c79e2400LL),
+      -reale(51817,0x997f46a249800LL),reale(25908,0xccbfa35124c00LL),
+      -reale(5262,0xb996ed2c7b770LL),reale(2659320,0xb4b906dd74543LL),
       // C4[3], coeff of eps^3, polynomial in n of order 23
-      -real(0x388cfdf100LL),-real(0x5500729200LL),-real(0x8250066300LL),
-      -real(0xcc2d29dc00LL),-real(0x147bd04f500LL),-real(0x21c7b15a600LL),
+      -real(242883621120LL),-real(365079728640LL),-real(559688344320LL),
+      -real(876931046400LL),-real(0x147bd04f500LL),-real(0x21c7b15a600LL),
       -real(0x396d13e6700LL),-real(0x650be18b000LL),-real(0xb8f375f7900LL),
       -real(0x16253c45ba00LL),-real(0x2cc1928ceb00LL),-real(0x6065d92f8400LL),
       -real(0xe04f74737d00LL),-real(0x23eadf138ce00LL),
       -real(0x682920857ef00LL),-real(0x1651f4aee45800LL),
       -real(0x61a68e7d270100LL),-real(0x281b43aa424e200LL),
-      -real(0x2bddd20238857300LL),reale(10668LL,0x544ee8e52d400LL),
-      reale(-45341LL,0x99b0a231ffb00LL),reale(90680LL,0xcc9ebb9c00a00LL),
-      reale(-84204LL,0x66912d3848900LL),reale(28944LL,0xfcbe1874a70e8LL),
-      reale(0x79bbeaLL,0x1e2b14985cfc9LL),
+      -real(0x2bddd20238857300LL),reale(10668,0x544ee8e52d400LL),
+      -reale(45340,0x664f5dce00500LL),reale(90680,0xcc9ebb9c00a00LL),
+      -reale(84203,0x996ed2c7b7700LL),reale(28944,0xfcbe1874a70e8LL),
+      reale(7977962,0x1e2b14985cfc9LL),
       // C4[4], coeff of eps^26, polynomial in n of order 0
-      real(0x46c5200LL),real(0x377b3e1aa351LL),
+      real(74207744),real(0x377b3e1aa351LL),
       // C4[4], coeff of eps^25, polynomial in n of order 1
-      -real(0x51ae800LL),real(0x28cb780LL),real(0x7a5a1b59863LL),
+      -real(85649408),real(42776448),real(0x7a5a1b59863LL),
       // C4[4], coeff of eps^24, polynomial in n of order 2
-      -real(0x5d090f66800LL),real(0x15cb8432c00LL),real(0x5ff8163080LL),
+      -real(0x5d090f66800LL),real(0x15cb8432c00LL),real(412184096896LL),
       real(0x3e897844a5071ebLL),
       // C4[4], coeff of eps^23, polynomial in n of order 3
       -real(0xbff3f70d800LL),real(0x44c7b31b000LL),-real(0x48108b34800LL),
@@ -2556,1549 +2538,1523 @@ namespace GeographicLib {
       -real(0x474af3a87693800LL),real(0x3c389a0df442000LL),
       -real(0x37e1a3d92db8800LL),real(0x12d1db00bd71000LL),
       -real(0x15fc16a85bcd800LL),real(0x99491c279c9880LL),
-      reale(0x1163fcLL,0xdfbd02f131dafLL),
+      reale(1139708,0xdfbd02f131dafLL),
       // C4[4], coeff of eps^20, polynomial in n of order 6
       -real(0x303d69b47fe22400LL),real(0x3f4d2c93a259b200LL),
       -real(0x29be542895db1800LL),real(0x17eb54d9d2a59e00LL),
       -real(0x1b89924120220c00LL),real(0x4aa7a22c8d50a00LL),
-      real(0x157745851f3d4c0LL),reale(0x9c83e3LL,0xdda51a7ac0b27LL),
+      real(0x157745851f3d4c0LL),reale(10257379,0xdda51a7ac0b27LL),
       // C4[4], coeff of eps^19, polynomial in n of order 7
       -real(0x44c3305a70de1000LL),real(0x6d1c9adfcac5e000LL),
       -real(0x312f88327b293000LL),real(0x3351684a1a554000LL),
       -real(0x2ab43a21fd0e5000LL),real(0xdaac481cc1ca000LL),
       -real(0x120b854707e97000LL),real(0x7289c72302f3500LL),
-      reale(0x9c83e3LL,0xdda51a7ac0b27LL),
+      reale(10257379,0xdda51a7ac0b27LL),
       // C4[4], coeff of eps^18, polynomial in n of order 8
-      reale(-2257LL,0x84afe20dc8000LL),reale(2620LL,0x5abb698ccf000LL),
+      -reale(2256,0x7b501df238000LL),reale(2620,0x5abb698ccf000LL),
       -real(0x3cfd86157c22a000LL),real(0x656f30f9d7a5d000LL),
       -real(0x3529aafa1251c000LL),real(0x23979dd758c6b000LL),
       -real(0x27cfd52f91a0e000LL),real(0x52c1297ffdf9000LL),
-      real(0x1899e61f0915c00LL),reale(0x9c83e3LL,0xdda51a7ac0b27LL),
+      real(0x1899e61f0915c00LL),reale(10257379,0xdda51a7ac0b27LL),
       // C4[4], coeff of eps^17, polynomial in n of order 9
-      reale(-5648LL,0x6d69d3f987000LL),reale(3064LL,0xd620df9a18000LL),
-      -real(0x73b5708edb717000LL),reale(2782LL,0xf8e2a6bab2000LL),
+      -reale(5647,0x92962c0679000LL),reale(3064,0xd620df9a18000LL),
+      -real(0x73b5708edb717000LL),reale(2782,0xf8e2a6bab2000LL),
       -real(0x3aa55028ed4d5000LL),real(0x54f5b0489ac0c000LL),
       -real(0x3a8372ad6ebf3000LL),real(0x128f31db99de6000LL),
       -real(0x1bbb3cddeb8b1000LL),real(0x9c3f5d344ffbb00LL),
-      reale(0x9c83e3LL,0xdda51a7ac0b27LL),
+      reale(10257379,0xdda51a7ac0b27LL),
       // C4[4], coeff of eps^16, polynomial in n of order 10
-      reale(-12547LL,0x2f9a6b7e09000LL),reale(2321LL,0x6f75c5bce2800LL),
-      reale(-5210LL,0x3640452d54000LL),reale(3693LL,0x4f3d4dd785800LL),
-      -real(0x59b26230b2e61000LL),reale(2785LL,0x7ef843b608800LL),
+      -reale(12546,0xd0659481f7000LL),reale(2321,0x6f75c5bce2800LL),
+      -reale(5209,0xc9bfbad2ac000LL),reale(3693,0x4f3d4dd785800LL),
+      -real(0x59b26230b2e61000LL),reale(2785,0x7ef843b608800LL),
       -real(0x4086b5731d656000LL),real(0x3b22d2695822b800LL),
       -real(0x3bbf747f663cb000LL),real(0x50e2c41c71ae800LL),
-      real(0x19182d9cca60700LL),reale(0x9c83e3LL,0xdda51a7ac0b27LL),
+      real(0x19182d9cca60700LL),reale(10257379,0xdda51a7ac0b27LL),
       // C4[4], coeff of eps^15, polynomial in n of order 11
-      reale(-14656LL,0x5833084c1d000LL),reale(5703LL,0xb41e60048e000LL),
-      reale(-13724LL,0xf905debc4f000LL),reale(2794LL,0x80dd2a6158000LL),
-      reale(-4435LL,0x42429a62a1000LL),reale(4398LL,0x1bf890b722000LL),
-      -real(0x462f1f0759b2d000LL),reale(2504LL,0xfcfacf17ac000LL),
+      -reale(14655,0xa7ccf7b3e3000LL),reale(5703,0xb41e60048e000LL),
+      -reale(13723,0x6fa2143b1000LL),reale(2794,0x80dd2a6158000LL),
+      -reale(4434,0xbdbd659d5f000LL),reale(4398,0x1bf890b722000LL),
+      -real(0x462f1f0759b2d000LL),reale(2504,0xfcfacf17ac000LL),
       -real(0x4eb2a95e9a75b000LL),real(0x1bef3eef6f4b6000LL),
       -real(0x2d8008caddc29000LL),real(0xdbb189dc4eba300LL),
-      reale(0x9c83e3LL,0xdda51a7ac0b27LL),
+      reale(10257379,0xdda51a7ac0b27LL),
       // C4[4], coeff of eps^14, polynomial in n of order 12
-      reale(-31111LL,0x2f5aeecd0c000LL),reale(76716LL,0x887753c58b000LL),
-      reale(-19286LL,0x3027a0a80a000LL),reale(3558LL,0x4fcfd1ab09000LL),
-      reale(-14555LL,0x40d2f53608000LL),reale(3850LL,0x9631322307000LL),
-      reale(-3314LL,0x6f07544006000LL),reale(4999LL,0xf3c6aed085000LL),
+      -reale(31110,0xd0a51132f4000LL),reale(76716,0x887753c58b000LL),
+      -reale(19285,0xcfd85f57f6000LL),reale(3558,0x4fcfd1ab09000LL),
+      -reale(14554,0xbf2d0ac9f8000LL),reale(3850,0x9631322307000LL),
+      -reale(3313,0x90f8abbffa000LL),reale(4999,0xf3c6aed085000LL),
       -real(0x44308029330fc000LL),real(0x72cd2f325ae83000LL),
       -real(0x5cc3eeffca3fe000LL),real(0x2f990ef34001000LL),
-      real(0xedd65cb262fc00LL),reale(0x9c83e3LL,0xdda51a7ac0b27LL),
+      real(0xedd65cb262fc00LL),reale(10257379,0xdda51a7ac0b27LL),
       // C4[4], coeff of eps^13, polynomial in n of order 13
-      reale(109832LL,0xfe67f2664d000LL),reale(-101415LL,0xc9a26ad01c000LL),
-      reale(-21579LL,0xd38200228b000LL),reale(81484LL,0xfb5b01862000LL),
-      reale(-25829LL,0x8520bb4969000LL),real(0x527645ab2c368000LL),
-      reale(-14627LL,0x5f0a484327000LL),reale(5668LL,0x89f8307d6e000LL),
-      -real(0x7c6deea8217fb000LL),reale(5148LL,0xb3c77272b4000LL),
+      reale(109832,0xfe67f2664d000LL),-reale(101414,0x365d952fe4000LL),
+      -reale(21578,0x2c7dffdd75000LL),reale(81484,0xfb5b01862000LL),
+      -reale(25828,0x7adf44b697000LL),real(0x527645ab2c368000LL),
+      -reale(14626,0xa0f5b7bcd9000LL),reale(5668,0x89f8307d6e000LL),
+      -real(0x7c6deea8217fb000LL),reale(5148,0xb3c77272b4000LL),
       -real(0x5ea4f23e05fbd000LL),real(0x33d79ea3e6f7a000LL),
       -real(0x512f5a2dc7bdf000LL),real(0x13f171801c8d4d00LL),
-      reale(0x9c83e3LL,0xdda51a7ac0b27LL),
+      reale(10257379,0xdda51a7ac0b27LL),
       // C4[4], coeff of eps^12, polynomial in n of order 14
-      reale(3290LL,0xf070eb97f3400LL),reale(-37926LL,0xeb33f78d44e00LL),
-      reale(108756LL,0x262a302ba0800LL),reale(-111140LL,0x45b6109f34200LL),
-      reale(-8979LL,0x691a509cedc00LL),reale(85061LL,0xe9667b666b600LL),
-      reale(-34831LL,0x4af77b29eb000LL),-real(0x1ae66991075c5600LL),
-      reale(-13338LL,0x2d28d4daa8400LL),reale(8254LL,0x43d2c57af1e00LL),
-      -real(0x39646320240ca800LL),reale(4333LL,0x5a8eb4efe1200LL),
-      reale(-2318LL,0xc78fad2da2c00LL),-real(0x4971411b9aa7a00LL),
-      -real(0x239dc6f1135e6c0LL),reale(0x9c83e3LL,0xdda51a7ac0b27LL),
+      reale(3290,0xf070eb97f3400LL),-reale(37925,0x14cc0872bb200LL),
+      reale(108756,0x262a302ba0800LL),-reale(111139,0xba49ef60cbe00LL),
+      -reale(8978,0x96e5af6312400LL),reale(85061,0xe9667b666b600LL),
+      -reale(34830,0xb50884d615000LL),-real(0x1ae66991075c5600LL),
+      -reale(13337,0xd2d72b2557c00LL),reale(8254,0x43d2c57af1e00LL),
+      -real(0x39646320240ca800LL),reale(4333,0x5a8eb4efe1200LL),
+      -reale(2317,0x387052d25d400LL),-real(0x4971411b9aa7a00LL),
+      -real(0x239dc6f1135e6c0LL),reale(10257379,0xdda51a7ac0b27LL),
       // C4[4], coeff of eps^11, polynomial in n of order 15
       real(0x22fb18f3d6fc800LL),real(0xc812a63656dd000LL),
-      reale(2929LL,0x54e6120875800LL),reale(-35122LL,0xb72fa39d42000LL),
-      reale(106528LL,0xc02be4bd3e800LL),reale(-121105LL,0x35724ce667000LL),
-      reale(7480LL,0x3b39caec37800LL),reale(86076LL,0xd8784a9f2c000LL),
-      reale(-46729LL,0x24906ba440800LL),-real(0x1e17ea5787b8f000LL),
-      reale(-10013LL,0xff9cfd7c39800LL),reale(11072LL,0xcb500e9316000LL),
-      -real(0x3d2315ebbfcfd800LL),reale(2196LL,0x522d08f7fb000LL),
-      reale(-2583LL,0xd6bd372f7b800LL),real(0x1dbc900c41177d80LL),
-      reale(0x9c83e3LL,0xdda51a7ac0b27LL),
+      reale(2929,0x54e6120875800LL),-reale(35121,0x48d05c62be000LL),
+      reale(106528,0xc02be4bd3e800LL),-reale(121104,0xca8db31999000LL),
+      reale(7480,0x3b39caec37800LL),reale(86076,0xd8784a9f2c000LL),
+      -reale(46728,0xdb6f945bbf800LL),-real(0x1e17ea5787b8f000LL),
+      -reale(10012,0x630283c6800LL),reale(11072,0xcb500e9316000LL),
+      -real(0x3d2315ebbfcfd800LL),reale(2196,0x522d08f7fb000LL),
+      -reale(2582,0x2942c8d084800LL),real(0x1dbc900c41177d80LL),
+      reale(10257379,0xdda51a7ac0b27LL),
       // C4[4], coeff of eps^10, polynomial in n of order 16
       real(0x2367980c018000LL),real(0x717a5d0aad6800LL),
       real(0x1c7a6b9a7155000LL),real(0xa7a0b73a0f93800LL),
-      reale(2540LL,0xdc02459a12000LL),reale(-31837LL,0xd9da00c10800LL),
-      reale(102741LL,0xc61b0075cf000LL),reale(-130714LL,0x4bce9caacd800LL),
-      reale(28618LL,0x913148900c000LL),reale(82224LL,0x225affaa4a800LL),
-      reale(-61372LL,0x8e7c958c49000LL),reale(3358LL,0xd2d9334507800LL),
-      reale(-4437LL,0xae8eb3ee06000LL),reale(12409LL,0x2e12e0f984800LL),
-      reale(-3100LL,0x4a639fe0c3000LL),-real(0x185351aa9adbe800LL),
-      -real(0xfcd867cd32b4e00LL),reale(0x9c83e3LL,0xdda51a7ac0b27LL),
+      reale(2540,0xdc02459a12000LL),-reale(31836,0xf2625ff3ef800LL),
+      reale(102741,0xc61b0075cf000LL),-reale(130713,0xb431635532800LL),
+      reale(28618,0x913148900c000LL),reale(82224,0x225affaa4a800LL),
+      -reale(61371,0x71836a73b7000LL),reale(3358,0xd2d9334507800LL),
+      -reale(4436,0x51714c11fa000LL),reale(12409,0x2e12e0f984800LL),
+      -reale(3099,0xb59c601f3d000LL),-real(0x185351aa9adbe800LL),
+      -real(0xfcd867cd32b4e00LL),reale(10257379,0xdda51a7ac0b27LL),
       // C4[4], coeff of eps^9, polynomial in n of order 17
       real(0x3b98569230800LL),real(0x954e9f9ae8000LL),real(0x1a387f0ed5f800LL),
       real(0x561911aabbb000LL),real(0x163673b1889e800LL),
-      real(0x870aa0c397ae000LL),reale(2128LL,0x4412890e0d800LL),
-      reale(-28019LL,0x6122fdeae1000LL),reale(96862LL,0x40aaeaffcc800LL),
-      reale(-138877LL,0xe72756d174000LL),reale(55003LL,0xc4365147fb800LL),
-      reale(69831LL,0x65a81c2787000LL),reale(-76837LL,0x6e673dc8ba800LL),
-      reale(14324LL,0xf9d757893a000LL),real(0x610a50cc5ec29800LL),
-      reale(9036LL,0xddda1962ad000LL),reale(-5867LL,0xfcfe343468800LL),
-      real(0x2b3d64f38f7c3a80LL),reale(0x9c83e3LL,0xdda51a7ac0b27LL),
+      real(0x870aa0c397ae000LL),reale(2128,0x4412890e0d800LL),
+      -reale(28018,0x9edd02151f000LL),reale(96862,0x40aaeaffcc800LL),
+      -reale(138876,0x18d8a92e8c000LL),reale(55003,0xc4365147fb800LL),
+      reale(69831,0x65a81c2787000LL),-reale(76836,0x9198c23745800LL),
+      reale(14324,0xf9d757893a000LL),real(0x610a50cc5ec29800LL),
+      reale(9036,0xddda1962ad000LL),-reale(5866,0x301cbcb97800LL),
+      real(0x2b3d64f38f7c3a80LL),reale(10257379,0xdda51a7ac0b27LL),
       // C4[4], coeff of eps^8, polynomial in n of order 18
       real(0x7c44a1c56800LL),real(0x10e1a40b9f400LL),real(0x2778995e94000LL),
       real(0x6511d82348c00LL),real(0x122fbee15d1800LL),
       real(0x3d60d47d162400LL),real(0x10572b5ec96f000LL),
       real(0x670e5c5512cbc00LL),real(0x6a1969ca184cc800LL),
-      reale(-23633LL,0x903b77fa65400LL),reale(88223LL,0x601afc7b4a000LL),
-      reale(-143686LL,0xc7e6fcd50ec00LL),reale(86217LL,0x78ea8eac47800LL),
-      reale(43622LL,0x50ec504da8400LL),reale(-86858LL,0x1b1c4c8725000LL),
-      reale(34767LL,0x1af4459111c00LL),real(0x470ee9f8c8f42800LL),
+      -reale(23632,0x6fc488059ac00LL),reale(88223,0x601afc7b4a000LL),
+      -reale(143685,0x3819032af1400LL),reale(86217,0x78ea8eac47800LL),
+      reale(43622,0x50ec504da8400LL),-reale(86857,0xe4e3b378db000LL),
+      reale(34767,0x1af4459111c00LL),real(0x470ee9f8c8f42800LL),
       -real(0xf0a395fd8dd4c00LL),-real(0x55da5cd875ef3c80LL),
-      reale(0x9c83e3LL,0xdda51a7ac0b27LL),
+      reale(10257379,0xdda51a7ac0b27LL),
       // C4[4], coeff of eps^7, polynomial in n of order 19
       real(0x114b06357800LL),real(0x2239f3629000LL),real(0x475e8ebd2800LL),
       real(0x9e5523c88000LL),real(0x17aa424dfd800LL),real(0x3e2133dde7000LL),
       real(0xb7f09cec78800LL),real(0x280af153ee6000LL),
       real(0xb0d866e91e3800LL),real(0x48b6aeda5425000LL),
-      real(0x4ec10b7f840de800LL),reale(-18694LL,0x2576e33244000LL),
-      reale(76065LL,0x2aaa760409800LL),reale(-141962LL,0x3c08cd5de3000LL),
-      reale(119123LL,0xd1c84be04800LL),-real(0x7f4b67756e45e000LL),
-      reale(-76607LL,0x185979f96f800LL),reale(56790LL,0xce45bec021000LL),
-      reale(-14599LL,0x3bc9e9b8ea800LL),real(0x23b84843a30d9480LL),
-      reale(0x9c83e3LL,0xdda51a7ac0b27LL),
+      real(0x4ec10b7f840de800LL),-reale(18693,0xda891ccdbc000LL),
+      reale(76065,0x2aaa760409800LL),-reale(141961,0xc3f732a21d000LL),
+      reale(119123,0xd1c84be04800LL),-real(0x7f4b67756e45e000LL),
+      -reale(76606,0xe7a6860690800LL),reale(56790,0xce45bec021000LL),
+      -reale(14598,0xc436164715800LL),real(0x23b84843a30d9480LL),
+      reale(10257379,0xdda51a7ac0b27LL),
       // C4[4], coeff of eps^6, polynomial in n of order 20
       real(0x2492f246000LL),real(0x43b68382800LL),real(0x827fc7ff000LL),
       real(0x10769dabb800LL),real(0x231371038000LL),real(0x4fad3dfb4800LL),
       real(0xc39532c71000LL),real(0x2109cc8eed800LL),real(0x650cdd3e2a000LL),
       real(0x16d3054b8e6800LL),real(0x69275cf4ee3000LL),
       real(0x2d6bb9aa2a1f800LL),real(0x342dc9db6781c000LL),
-      reale(-13326LL,0xf4ea5bd318800LL),reale(59725LL,0xe775950b55000LL),
-      reale(-128820LL,0xb5425df051800LL),reale(144216LL,0xdf24ba0e000LL),
-      reale(-65936LL,0xe9769e324a800LL),reale(-23423LL,0xcda398bdc7000LL),
-      reale(39625LL,0x392517e583800LL),reale(-12955LL,0x99a02e576da00LL),
-      reale(0x9c83e3LL,0xdda51a7ac0b27LL),
+      -reale(13325,0xb15a42ce7800LL),reale(59725,0xe775950b55000LL),
+      -reale(128819,0x4abda20fae800LL),reale(144216,0xdf24ba0e000LL),
+      -reale(65935,0x168961cdb5800LL),-reale(23422,0x325c674239000LL),
+      reale(39625,0x392517e583800LL),-reale(12954,0x665fd1a892600LL),
+      reale(10257379,0xdda51a7ac0b27LL),
       // C4[4], coeff of eps^5, polynomial in n of order 21
-      real(0x3f9aad7800LL),real(0x7000ca6000LL),real(0xcbc0504800LL),
+      real(273177999360LL),real(481049600000LL),real(875104847872LL),
       real(0x180866df000LL),real(0x2f4b74a1800LL),real(0x61abf5b8000LL),
       real(0xd562fc0e800LL),real(0x1f2598191000LL),real(0x4ed8f85ab800LL),
       real(0xdc91252ca000LL),real(0x2bd44913d8800LL),real(0xa584ade1c3000LL),
       real(0x322090df0f5800LL),real(0x16f6266186dc000LL),
-      real(0x1c472a543df62800LL),reale(-7860LL,0x8550f02a75000LL),
-      reale(39234LL,0x9eeb23497f800LL),reale(-98181LL,0x48f3e5f4ee000LL),
-      reale(140051LL,0xe6fe7071ac800LL),reale(-115828LL,0x6ca743fea7000LL),
-      reale(51817LL,0x997f46a249800LL),reale(-9716LL,0x333822c192380LL),
-      reale(0x9c83e3LL,0xdda51a7ac0b27LL),
+      real(0x1c472a543df62800LL),-reale(7859,0x7aaf0fd58b000LL),
+      reale(39234,0x9eeb23497f800LL),-reale(98180,0xb70c1a0b12000LL),
+      reale(140051,0xe6fe7071ac800LL),-reale(115827,0x9358bc0159000LL),
+      reale(51817,0x997f46a249800LL),-reale(9715,0xccc7dd3e6dc80LL),
+      reale(10257379,0xdda51a7ac0b27LL),
       // C4[4], coeff of eps^4, polynomial in n of order 22
-      real(0x43707cc00LL),real(0x72363ea00LL),real(0xc6cade800LL),
-      real(0x164b8d6600LL),real(0x2966060400LL),real(0x4fe5ac6200LL),
-      real(0xa1231b2000LL),real(0x155e2e7de00LL),real(0x30194583c00LL),
+      real(18103127040LL),real(30658521600LL),real(53362944000LL),
+      real(95756838400LL),real(177805329408LL),real(343155696128LL),
+      real(692078714880LL),real(0x155e2e7de00LL),real(0x30194583c00LL),
       real(0x741fc16da00LL),real(0x131155285800LL),real(0x379d38605600LL),
       real(0xb96166967400LL),real(0x2e2dfa3db5200LL),real(0xee14dc9ed9000LL),
       real(0x752e44962ece00LL),real(0x9cf0406db58ac00LL),
-      reale(-3008LL,0x32d1e931ca00LL),reale(16844LL,0xbb0354c82c800LL),
-      reale(-48008LL,0x849ce7f8b4600LL),reale(77726LL,0x663ee9f36e400LL),
-      reale(-64772LL,0x20e7b524200LL),reale(21050LL,0xe65bb4b1eddc0LL),
-      reale(0x9c83e3LL,0xdda51a7ac0b27LL),
+      -reale(3007,0xfcd2e16ce3600LL),reale(16844,0xbb0354c82c800LL),
+      -reale(48007,0x7b6318074ba00LL),reale(77726,0x663ee9f36e400LL),
+      -reale(64771,0xffdf184adbe00LL),reale(21050,0xe65bb4b1eddc0LL),
+      reale(10257379,0xdda51a7ac0b27LL),
       // C4[5], coeff of eps^26, polynomial in n of order 0
-      real(356096LL),real(0x16df1ef5f5LL),
+      356096,real(98232628725LL),
       // C4[5], coeff of eps^25, polynomial in n of order 1
-      real(0x46ce30800LL),real(0x146425580LL),real(0x1580fd4afdbe65LL),
+      real(19006687232LL),real(5473719680LL),real(0x1580fd4afdbe65LL),
       // C4[5], coeff of eps^24, polynomial in n of order 2
-      real(0x2ba61448000LL),-real(0x378568c4000LL),real(0x16cc31e2a00LL),
+      real(91538057LL<<15),-real(0x378568c4000LL),real(0x16cc31e2a00LL),
       real(0x4c6f2137745e091LL),
       // C4[5], coeff of eps^23, polynomial in n of order 3
       real(0xef2f223e3800LL),-real(0x110fb2e7bf000LL),real(0x282bb4606800LL),
-      real(0xbe30d7a6780LL),reale(2828LL,0xfcd03d1974f5LL),
+      real(0xbe30d7a6780LL),reale(2828,0xfcd03d1974f5LL),
       // C4[5], coeff of eps^22, polynomial in n of order 4
-      real(0x5e4a1598000LL),-real(0x48b6e92a000LL),real(0x1757a4ac000LL),
-      -real(0x20e8326e000LL),real(0xc6156d2d00LL),real(0x2081a7235aaf593LL),
+      real(0x5e4a1598000LL),-real(0x48b6e92a000LL),real(97904939LL<<14),
+      -real(0x20e8326e000LL),real(850763001088LL),real(0x2081a7235aaf593LL),
       // C4[5], coeff of eps^21, polynomial in n of order 5
       real(0x40db2f49b455f800LL),-real(0x1e99bb32c4c22000LL),
       real(0x173ba0294630c800LL),-real(0x194707e3169c1000LL),
       real(0x2d83efe695c9800LL),real(0xdf3e0617af3080LL),
-      reale(0xbf4bddLL,0x9d1f205d24685LL),
+      reale(12536797,0x9d1f205d24685LL),
       // C4[5], coeff of eps^20, polynomial in n of order 6
       real(0x216feaa994ce0000LL),-real(0xab5f967e8690000LL),
-      real(0x11e48889bb540000LL),-real(0xb74a91dab5f0000LL),
+      real(0x47922226ed5LL<<18),-real(0xb74a91dab5f0000LL),
       real(0x3c54ceff81a0000LL),-real(0x5d7cb98f1a50000LL),
-      real(0x1f9a69370b20800LL),reale(0x3fc3f4LL,0x89b50ac9b6cd7LL),
+      real(0x1f9a69370b20800LL),reale(4178932,0x89b50ac9b6cd7LL),
       // C4[5], coeff of eps^19, polynomial in n of order 7
       real(0x737c719d74a11000LL),-real(0x33cb00709b02e000LL),
       real(0x64aa4f647e063000LL),-real(0x22d04f5347fb4000LL),
       real(0x244213a9e6215000LL),-real(0x2372b83384fba000LL),
       real(0x29c5a12d1767000LL),real(0xd64e2b028e9d00LL),
-      reale(0xbf4bddLL,0x9d1f205d24685LL),
+      reale(12536797,0x9d1f205d24685LL),
       // C4[5], coeff of eps^18, polynomial in n of order 8
-      real(0x4d6c482dac2a0000LL),reale(-2330LL,0x4e01d8dc24000LL),
-      reale(2244LL,0xda129de1b8000LL),-real(0x25b9c94d1ec14000LL),
+      real(0x4d6c482dac2a0000LL),-reale(2329,0xb1fe2723dc000LL),
+      reale(2244,0xda129de1b8000LL),-real(0x25b9c94d1ec14000LL),
       real(0x5915813997350000LL),-real(0x2b18411354f8c000LL),
       real(0x1038d20e1fbe8000LL),-real(0x1a9977b2ea9c4000LL),
-      real(0x7df995f732ef600LL),reale(0xbf4bddLL,0x9d1f205d24685LL),
+      real(0x7df995f732ef600LL),reale(12536797,0x9d1f205d24685LL),
       // C4[5], coeff of eps^17, polynomial in n of order 9
-      real(0x514388ef27d31000LL),reale(-6021LL,0xd41baf36e8000LL),
+      real(0x514388ef27d31000LL),-reale(6020,0x2be450c918000LL),
       real(0x6fa66bdc836df000LL),-real(0x67912be26fab2000LL),
-      reale(2539LL,0xf65fb2006d000LL),-real(0x237e1033f4d8c000LL),
+      reale(2539,0xf65fb2006d000LL),-real(0x237e1033f4d8c000LL),
       real(0x3efb5ba75c79b000LL),-real(0x32b52fd83cbe6000LL),
       real(0x17d40e2c1a29000LL),real(0x7dfd16a9c2e300LL),
-      reale(0xbf4bddLL,0x9d1f205d24685LL),
+      reale(12536797,0x9d1f205d24685LL),
       // C4[5], coeff of eps^16, polynomial in n of order 10
-      reale(12470LL,0xf777d5cb70000LL),reale(-8995LL,0xcb00690428000LL),
-      real(0x22d781d11b8c0000LL),reale(-5685LL,0x5cae489458000LL),
-      reale(2676LL,0xe4b7624210000LL),-real(0x3b4e8fe27b2f8000LL),
-      reale(2525LL,0xe113384060000LL),-real(0x317b33e66b8c8000LL),
+      reale(12470,0xf777d5cb70000LL),-reale(8994,0x34ff96fbd8000LL),
+      real(0x8b5e07446e3LL<<18),-reale(5684,0xa351b76ba8000LL),
+      reale(2676,0xe4b7624210000LL),-real(0x3b4e8fe27b2f8000LL),
+      reale(2525,0xe113384060000LL),-real(0x317b33e66b8c8000LL),
       real(0x1afebbc488cb0000LL),-real(0x2abc78cdb6418000LL),
-      real(0xab0b32cc6da3c00LL),reale(0xbf4bddLL,0x9d1f205d24685LL),
+      real(0xab0b32cc6da3c00LL),reale(12536797,0x9d1f205d24685LL),
       // C4[5], coeff of eps^15, polynomial in n of order 11
-      reale(45753LL,0x27312c684b000LL),real(0x6b25908081df2000LL),
-      reale(10080LL,0x3e3c4e94e9000LL),reale(-11484LL,0xcfad66f9a8000LL),
-      real(0x186dcc47df2a7000LL),reale(-4655LL,0x1684cc365e000LL),
-      reale(3765LL,0x192eb8a145000LL),-real(0x1ea7f016e242c000LL),
+      reale(45753,0x27312c684b000LL),real(0x6b25908081df2000LL),
+      reale(10080,0x3e3c4e94e9000LL),-reale(11483,0x3052990658000LL),
+      real(0x186dcc47df2a7000LL),-reale(4654,0xe97b33c9a2000LL),
+      reale(3765,0x192eb8a145000LL),-real(0x1ea7f016e242c000LL),
       real(0x7c08a9e80a083000LL),-real(0x48a61c5124e36000LL),
       -real(0x1ab8464a6fdf000LL),-real(0xc3b3128c53f500LL),
-      reale(0xbf4bddLL,0x9d1f205d24685LL),
+      reale(12536797,0x9d1f205d24685LL),
       // C4[5], coeff of eps^14, polynomial in n of order 12
-      reale(-29854LL,0x680415f70000LL),reale(-72662LL,0x4d1ac37df4000LL),
-      reale(55735LL,0xd505afdac8000LL),-real(0x19eb9cd373704000LL),
-      reale(6447LL,0x407ca0dba0000LL),reale(-13736LL,0x6cb0ae15c4000LL),
-      real(0x503c7c1e17a78000LL),reale(-2911LL,0x70f0f99ccc000LL),
-      reale(4611LL,0xa07ae6cfd0000LL),-real(0x28ec95124696c000LL),
+      -reale(29853,0xf97fbea090000LL),-reale(72661,0xb2e53c820c000LL),
+      reale(55735,0xd505afdac8000LL),-real(0x19eb9cd373704000LL),
+      reale(6447,8655275741LL<<17),-reale(13735,0x934f51ea3c000LL),
+      real(0x503c7c1e17a78000LL),-reale(2910,0x8f0f066334000LL),
+      reale(4611,0xa07ae6cfd0000LL),-real(0x28ec95124696c000LL),
       real(0x386dc5f3bf428000LL),-real(0x49a3cdb95c464000LL),
-      real(0xec86977ad08e600LL),reale(0xbf4bddLL,0x9d1f205d24685LL),
+      real(0xec86977ad08e600LL),reale(12536797,0x9d1f205d24685LL),
       // C4[5], coeff of eps^13, polynomial in n of order 13
-      reale(-77965LL,0xfd8dfa5e43000LL),reale(116550LL,0x911cc360c4000LL),
-      reale(-45606LL,0x5472139be5000LL),reale(-66196LL,0x3621e725ee000LL),
-      reale(66624LL,0xae21593727000LL),reale(-5577LL,0xfc909c53d8000LL),
-      real(0x6f2264aae1649000LL),reale(-14833LL,0xd36bf488c2000LL),
-      reale(3661LL,0xe0e147ff8b000LL),-real(0x37687d20b9d14000LL),
-      reale(4430LL,0xd2ef37d92d000LL),-real(0x61330ed553f6a000LL),
+      -reale(77964,0x27205a1bd000LL),reale(116550,0x911cc360c4000LL),
+      -reale(45605,0xab8dec641b000LL),-reale(66195,0xc9de18da12000LL),
+      reale(66624,0xae21593727000LL),-reale(5576,0x36f63ac28000LL),
+      real(0x6f2264aae1649000LL),-reale(14832,0x2c940b773e000LL),
+      reale(3661,0xe0e147ff8b000LL),-real(0x37687d20b9d14000LL),
+      reale(4430,0xd2ef37d92d000LL),-real(0x61330ed553f6a000LL),
       -real(0x8fc7d2821691000LL),-real(0x4de8f81581e0b00LL),
-      reale(0xbf4bddLL,0x9d1f205d24685LL),
+      reale(12536797,0x9d1f205d24685LL),
       // C4[5], coeff of eps^12, polynomial in n of order 14
-      -real(0x520b481798460000LL),reale(18997LL,0x2a845a090000LL),
-      reale(-73061LL,0x14338a7640000LL),reale(119587LL,0x641c11f8f0000LL),
-      reale(-63451LL,0xb0d24e0000LL),reale(-54597LL,0xab5ebfb650000LL),
-      reale(77203LL,0x99135d6980000LL),reale(-15162LL,0x99696a3ab0000LL),
-      reale(-2899LL,0xc95d422620000LL),reale(-13402LL,0x44e23ce810000LL),
-      reale(7364LL,0x7017623cc0000LL),real(0xcbde6dd32070000LL),
-      reale(2498LL,0xb270ac8f60000LL),reale(-2208LL,0x1a1eb845d0000LL),
-      real(0x146e5a4ec1af3800LL),reale(0xbf4bddLL,0x9d1f205d24685LL),
+      -real(0x520b481798460000LL),reale(18997,713316873LL<<16),
+      -reale(73060,0xebcc7589c0000LL),reale(119587,0x641c11f8f0000LL),
+      -reale(63450,0xfff4f2db20000LL),-reale(54596,0x54a14049b0000LL),
+      reale(77203,5136366291LL<<19),-reale(15161,0x669695c550000LL),
+      -reale(2898,7333080783LL<<17),-reale(13401,0xbb1dc317f0000LL),
+      reale(7364,7522322675LL<<18),real(0xcbde6dd32070000LL),
+      reale(2498,0xb270ac8f60000LL),-reale(2207,0xe5e147ba30000LL),
+      real(0x146e5a4ec1af3800LL),reale(12536797,0x9d1f205d24685LL),
       // C4[5], coeff of eps^11, polynomial in n of order 15
       -real(0x8e2d12e55cc800LL),-real(0x3c744345ee05000LL),
-      -real(0x436e3347c2885800LL),reale(16354LL,0x603aee4aee000LL),
-      reale(-66896LL,0xca9e46ad91800LL),reale(120525LL,0x7fafccca1000LL),
-      reale(-82889LL,0x93187d3c58800LL),reale(-36027LL,0x48cf357af4000LL),
-      reale(84916LL,0xe33bbac3af800LL),reale(-30330LL,0x65e7df59c7000LL),
-      reale(-5004LL,0x98dbeb9376800LL),reale(-8176LL,0x5ae0cbecfa000LL),
-      reale(10601LL,0xdf58b3eb8d800LL),-real(0x51534d8656793000LL),
+      -real(0x436e3347c2885800LL),reale(16354,0x603aee4aee000LL),
+      -reale(66895,0x3561b9526e800LL),reale(120525,0x7fafccca1000LL),
+      -reale(82888,0x6ce782c3a7800LL),-reale(36026,0xb730ca850c000LL),
+      reale(84916,0xe33bbac3af800LL),-reale(30329,0x9a1820a639000LL),
+      -reale(5003,0x6724146c89800LL),-reale(8175,0xa51f341306000LL),
+      reale(10601,0xdf58b3eb8d800LL),-real(0x51534d8656793000LL),
       -real(0x13f74fe07242b800LL),-real(0x1338322158bf8680LL),
-      reale(0xbf4bddLL,0x9d1f205d24685LL),
+      reale(12536797,0x9d1f205d24685LL),
       // C4[5], coeff of eps^10, polynomial in n of order 16
       -real(0x5e9d97de20000LL),-real(0x15f51b48a5a000LL),
       -real(0x679f3a6a83c000LL),-real(0x2da38dbb53ee000LL),
-      -real(0x351287a208998000LL),reale(13549LL,0xfdc5cc829e000LL),
-      reale(-59299LL,0xca14375c8c000LL),reale(118312LL,0x8f7a13080a000LL),
-      reale(-102645LL,0xf416a7e8f0000LL),reale(-8664LL,0xcd7c174b16000LL),
-      reale(85056LL,0xa0c3d6fa54000LL),reale(-50542LL,0xa701315a82000LL),
+      -real(0x351287a208998000LL),reale(13549,0xfdc5cc829e000LL),
+      -reale(59298,0x35ebc8a374000LL),reale(118312,0x8f7a13080a000LL),
+      -reale(102644,0xbe9581710000LL),-reale(8663,0x3283e8b4ea000LL),
+      reale(85056,0xa0c3d6fa54000LL),-reale(50541,0x58fecea57e000LL),
       real(0x9e0314066f78000LL),-real(0x56026edfbaf2000LL),
-      reale(9162LL,0x6ada71271c000LL),reale(-4515LL,0xc070d4197a000LL),
-      real(0x19aa7dbc9bd2b100LL),reale(0xbf4bddLL,0x9d1f205d24685LL),
+      reale(9162,0x6ada71271c000LL),-reale(4514,0x3f8f2be686000LL),
+      real(0x19aa7dbc9bd2b100LL),reale(12536797,0x9d1f205d24685LL),
       // C4[5], coeff of eps^9, polynomial in n of order 17
       -real(0x689b7f794800LL),-real(0x12aa316a68000LL),
       -real(0x3c5fe03b7b800LL),-real(0xe70662316b000LL),
       -real(0x468257445d2800LL),-real(0x204dea1c904e000LL),
-      -real(0x275c24b79c179800LL),reale(10640LL,0x725f868a0f000LL),
-      reale(-50164LL,0x7c98f9d6af800LL),reale(111598LL,0xa3db986ecc000LL),
-      reale(-120106LL,0xe50b1b57c8800LL),reale(28289LL,0xbddfd64f09000LL),
-      reale(70122LL,0x41f96206f1800LL),reale(-70105LL,0x32e30edbe6000LL),
-      reale(17631LL,0x83f469b94a800LL),reale(3507LL,0xd4dd7e683000LL),
+      -real(0x275c24b79c179800LL),reale(10640,0x725f868a0f000LL),
+      -reale(50163,0x8367062950800LL),reale(111598,0xa3db986ecc000LL),
+      -reale(120105,0x1af4e4a837800LL),reale(28289,0xbddfd64f09000LL),
+      reale(70122,0x41f96206f1800LL),-reale(70104,0xcd1cf1241a000LL),
+      reale(17631,0x83f469b94a800LL),reale(3507,0xd4dd7e683000LL),
       real(0x234fa818af3f3800LL),-real(0x5217ce807fb7e980LL),
-      reale(0xbf4bddLL,0x9d1f205d24685LL),
+      reale(12536797,0x9d1f205d24685LL),
       // C4[5], coeff of eps^8, polynomial in n of order 18
-      -real(0x8baa3048000LL),-real(0x155e3991c000LL),-real(0x38b7bd240000LL),
+      -real(0x8baa3048000LL),-real(0x155e3991c000LL),-real(237891401LL<<18),
       -real(0xa66484064000LL),-real(0x22acb24838000LL),
       -real(0x89475b1e6c000LL),-real(0x2b8ce25f7b0000LL),
       -real(0x14dd31b8f8b4000LL),-real(0x1acbb07dd4628000LL),
-      reale(7723LL,0xe6c1cd6b44000LL),reale(-39541LL,0x4e2f6566e0000LL),
-      reale(98832LL,0x70f12b47fc000LL),reale(-130554LL,0xb8b3b5a9e8000LL),
-      reale(72091LL,0x9d4697d7f4000LL),reale(31173LL,0xcb977f1d70000LL),
-      reale(-72485LL,0x588f6655ac000LL),reale(42073LL,0x76abc75bf8000LL),
-      reale(-8984LL,0x24cb05fba4000LL),real(0x7851cafec6ea600LL),
-      reale(0xbf4bddLL,0x9d1f205d24685LL),
+      reale(7723,0xe6c1cd6b44000LL),-reale(39540,0xb1d09a9920000LL),
+      reale(98832,0x70f12b47fc000LL),-reale(130553,0x474c4a5618000LL),
+      reale(72091,0x9d4697d7f4000LL),reale(31173,0xcb977f1d70000LL),
+      -reale(72484,0xa77099aa54000LL),reale(42073,0x76abc75bf8000LL),
+      -reale(8983,0xdb34fa045c000LL),real(0x7851cafec6ea600LL),
+      reale(12536797,0x9d1f205d24685LL),
       // C4[5], coeff of eps^7, polynomial in n of order 19
-      -real(0xbc3b1c3800LL),-real(0x19fd8659000LL),-real(0x3ce45316800LL),
+      -real(808445556736LL),-real(0x19fd8659000LL),-real(0x3ce45316800LL),
       -real(0x98e89f08000LL),-real(0x1a16c5239800LL),-real(0x4ef4224b7000LL),
       -real(0x11089a8d8c800LL),-real(0x461e8219c6000LL),
       -real(0x1740d89936f800LL),-real(0xbb97ef56095000LL),
-      -real(0xffd8608f0242800LL),reale(4956LL,0x2ae7ba647c000LL),
-      reale(-27804LL,0x77793f179a800LL),reale(78703LL,0x691d56f30d000LL),
-      reale(-126582LL,0x4d53dadbc7800LL),reale(111405LL,0x65dae188be000LL),
-      reale(-33041LL,0x37d0713be4800LL),reale(-31123LL,0x5ae3e7032f000LL),
-      reale(33849LL,0xe315529991800LL),reale(-10097LL,0x3035514bac080LL),
-      reale(0xbf4bddLL,0x9d1f205d24685LL),
+      -real(0xffd8608f0242800LL),reale(4956,0x2ae7ba647c000LL),
+      -reale(27803,0x8886c0e865800LL),reale(78703,0x691d56f30d000LL),
+      -reale(126581,0xb2ac252438800LL),reale(111405,0x65dae188be000LL),
+      -reale(33040,0xc82f8ec41b800LL),-reale(31122,0xa51c18fcd1000LL),
+      reale(33849,0xe315529991800LL),-reale(10096,0xcfcaaeb453f80LL),
+      reale(12536797,0x9d1f205d24685LL),
       // C4[5], coeff of eps^6, polynomial in n of order 20
-      -real(0xd6ed08000LL),-real(0x1b8fe4a000LL),-real(0x3b33274000LL),
-      -real(0x860230e000LL),-real(0x142709a0000LL),-real(0x341c17b2000LL),
+      -real(57693732864LL),-real(118378242048LL),-real(254261280768LL),
+      -real(575562375168LL),-real(10565709LL<<17),-real(0x341c17b2000LL),
       -real(0x92ee7ecc000LL),-real(0x1ccf17876000LL),-real(0x6786d9e38000LL),
       -real(0x1bdf19e19a000LL),-real(0x9bb8377424000LL),
       -real(0x5352681ef5e000LL),-real(0x79ce0dfd0cd0000LL),
-      reale(2563LL,0x29027cc1fe000LL),reale(-15918LL,0x531738b84000LL),
-      reale(51375LL,0x61bf7d963a000LL),reale(-99437LL,0xc6f0784898000LL),
-      reale(119998LL,0xa6d5e6f116000LL),reale(-88556LL,0xd863841e2c000LL),
-      reale(36577LL,0x210e8c3652000LL),reale(-6478LL,0xccd0172bb6d00LL),
-      reale(0xbf4bddLL,0x9d1f205d24685LL),
+      reale(2563,0x29027cc1fe000LL),-reale(15917,0xface8c747c000LL),
+      reale(51375,0x61bf7d963a000LL),-reale(99436,0x390f87b768000LL),
+      reale(119998,0xa6d5e6f116000LL),-reale(88555,0x279c7be1d4000LL),
+      reale(36577,0x210e8c3652000LL),-reale(6477,0x332fe8d449300LL),
+      reale(12536797,0x9d1f205d24685LL),
       // C4[5], coeff of eps^5, polynomial in n of order 21
-      -real(0x973b7800LL),-real(0x125656000LL),-real(0x24ee64800LL),
-      -real(0x4d94b7000LL),-real(0xaaf721800LL),-real(0x18e0978000LL),
-      -real(0x3dbc68e800LL),-real(0xa52d939000LL),-real(0x1e3bc54b800LL),
+      -real(2537256960LL),-real(4922368000LL),-real(9913649152LL),
+      -real(20825468928LL),-real(45893163008LL),-real(3260719LL<<15),
+      -real(265153996800LL),-real(709434249216LL),-real(0x1e3bc54b800LL),
       -real(0x62f2289a000LL),-real(0x174e12bf8800LL),-real(0x69ee83c3b000LL),
       -real(0x2753bfa335800LL),-real(0x1693a2298bc000LL),
       -real(0x23ce232de3a2800LL),real(0x33ca29bdcdd43000LL),
-      reale(-5755LL,0x96c59eaa20800LL),reale(21176LL,0x3b8f28c122000LL),
-      reale(-47647LL,0x79fde44d73800LL),reale(67058LL,0x11f0010e41000LL),
-      reale(-51818LL,0x6680b95db6800LL),reale(16192LL,0xfff7c612b6f80LL),
-      reale(0xbf4bddLL,0x9d1f205d24685LL),
+      -reale(5754,0x693a6155df800LL),reale(21176,0x3b8f28c122000LL),
+      -reale(47646,0x86021bb28c800LL),reale(67058,0x11f0010e41000LL),
+      -reale(51817,0x997f46a249800LL),reale(16192,0xfff7c612b6f80LL),
+      reale(12536797,0x9d1f205d24685LL),
       // C4[6], coeff of eps^26, polynomial in n of order 0
-      real(0x43f7200LL),real(0x75209f8d91abLL),
+      real(71266816),real(0x75209f8d91abLL),
       // C4[6], coeff of eps^25, polynomial in n of order 1
-      -real(0x3c404000LL),real(0x15c35400LL),real(0x64173937d043LL),
+      -real(61697<<14),real(365122560),real(0x64173937d043LL),
       // C4[6], coeff of eps^24, polynomial in n of order 2
-      -real(0x10389da9c000LL),real(0x19e75ef2000LL),real(0x821f98bc00LL),
+      -real(0x10389da9c000LL),real(0x19e75ef2000LL),real(558875851776LL),
       real(0xd767bab38dc330dLL),
       // C4[6], coeff of eps^23, polynomial in n of order 3
       -real(0x142d81502c000LL),real(0x6dee9f4b8000LL),-real(0xae181cf64000LL),
-      real(0x39153b46b400LL),reale(3342LL,0x41381bc9272f3LL),
+      real(0x39153b46b400LL),reale(3342,0x41381bc9272f3LL),
       // C4[6], coeff of eps^22, polynomial in n of order 4
       -real(0x13480fca8c000LL),real(0x16106a2c37000LL),
       -real(0x1502d2e846000LL),real(0x16180c1bd000LL),real(0x74238242a00LL),
-      reale(3342LL,0x41381bc9272f3LL),
+      reale(3342,0x41381bc9272f3LL),
       // C4[6], coeff of eps^21, polynomial in n of order 5
       -real(0x1c0b06f2aed0000LL),real(0x44926ab731c0000LL),
       -real(0x2031c71e85b0000LL),real(0xca25cdaf0e0000LL),
       -real(0x14c7d62b6490000LL),real(0x61052e04125000LL),
-      reale(0x1163fcLL,0xdfbd02f131dafLL),
+      reale(1139708,0xdfbd02f131dafLL),
       // C4[6], coeff of eps^20, polynomial in n of order 6
       -real(0x3c147e5183b90000LL),real(0x5c8a793ab7a08000LL),
-      -real(0x14e3709880260000LL),real(0x26583d412b938000LL),
+      -real(0xa71b84c4013LL<<17),real(0x26583d412b938000LL),
       -real(0x1ec1409e52930000LL),real(0xd82d55b5068000LL),
-      real(0x4a1c5add9a3000LL),reale(0xe213d7LL,0x5c99263f881e3LL),
+      real(0x4a1c5add9a3000LL),reale(14816215,0x5c99263f881e3LL),
       // C4[6], coeff of eps^19, polynomial in n of order 7
-      reale(-2885LL,0x6888986810000LL),real(0x5dcb94a5bbaa0000LL),
+      -reale(2884,0x97776797f0000LL),real(0x5dcb94a5bbaa0000LL),
       -real(0x2147754a866d0000LL),real(0x59b9e153ee1c0000LL),
       -real(0x1d3317b06cdb0000LL),real(0xfd67f86b28e0000LL),
       -real(0x193b89a255c90000LL),real(0x662541f54195000LL),
-      reale(0xe213d7LL,0x5c99263f881e3LL),
+      reale(14816215,0x5c99263f881e3LL),
       // C4[6], coeff of eps^18, polynomial in n of order 8
-      reale(-5405LL,0xa1991e06d0000LL),real(0x194c5bcfa9f36000LL),
-      reale(-2202LL,0xb0dcf6bb1c000LL),reale(2053LL,0x73a8845e02000LL),
+      -reale(5404,0x5e66e1f930000LL),real(0x194c5bcfa9f36000LL),
+      -reale(2201,0x4f230944e4000LL),reale(2053,0x73a8845e02000LL),
       -real(0x127ebba7aac98000LL),real(0x433c97a5782ce000LL),
       -real(0x29997437ffc4c000LL),-real(0xb36408ece66000LL),
-      -real(0x4eb946c9b6ac00LL),reale(0xe213d7LL,0x5c99263f881e3LL),
+      -real(0x4eb946c9b6ac00LL),reale(14816215,0x5c99263f881e3LL),
       // C4[6], coeff of eps^17, polynomial in n of order 9
-      reale(-2830LL,0xa8bb37a568000LL),real(0x53fda6bff9540000LL),
-      reale(-5947LL,0x3e8620cd18000LL),real(0x424987c8bd3f0000LL),
-      -real(0x4d6fba1e72f38000LL),reale(2362LL,0x7a9b39aaa0000LL),
+      -reale(2829,0x5744c85a98000LL),real(0x53fda6bff9540000LL),
+      -reale(5946,0xc179df32e8000LL),real(0x424987c8bd3f0000LL),
+      -real(0x4d6fba1e72f38000LL),reale(2362,0x7a9b39aaa0000LL),
       -real(0x1a7dd6520d788000LL),real(0x1ca5a49549150000LL),
       -real(0x279b8ad82b3d8000LL),real(0x8624b660e613800LL),
-      reale(0xe213d7LL,0x5c99263f881e3LL),
+      reale(14816215,0x5c99263f881e3LL),
       // C4[6], coeff of eps^16, polynomial in n of order 10
-      reale(3052LL,0x1cc54fce28000LL),reale(15175LL,0x33b0e2aba4000LL),
-      reale(-5745LL,0xf3abbf2820000LL),-real(0xd3fdde9c4364000LL),
-      reale(-5628LL,0xbd4d5ba218000LL),reale(2296LL,0xc920e17994000LL),
-      -real(0x15ef23de88bf0000LL),reale(2060LL,0x9b7c8a7a8c000LL),
+      reale(3052,0x1cc54fce28000LL),reale(15175,0x33b0e2aba4000LL),
+      -reale(5744,0xc5440d7e0000LL),-real(0xd3fdde9c4364000LL),
+      -reale(5627,0x42b2a45de8000LL),reale(2296,0xc920e17994000LL),
+      -real(0x15ef23de88bf0000LL),reale(2060,0x9b7c8a7a8c000LL),
       -real(0x3634e9b2229f8000LL),-real(0x3eaac877287c000LL),
-      -real(0x1ee323a1ca0c800LL),reale(0xe213d7LL,0x5c99263f881e3LL),
+      -real(0x1ee323a1ca0c800LL),reale(14816215,0x5c99263f881e3LL),
       // C4[6], coeff of eps^15, polynomial in n of order 11
-      reale(-77305LL,0x14b26f7638000LL),reale(21636LL,0x8867f71d90000LL),
-      reale(6061LL,0x1026579ee8000LL),reale(12960LL,0x5a843c8140000LL),
-      reale(-9404LL,0xfda467ab98000LL),-real(0x35c5d916ffb10000LL),
-      reale(-4115LL,0xc2ec441448000LL),reale(3690LL,0x5a8c0420a0000LL),
+      -reale(77304,0xeb4d9089c8000LL),reale(21636,0x8867f71d90000LL),
+      reale(6061,8670344157LL<<15),reale(12960,6074462725LL<<18),
+      -reale(9403,0x25b985468000LL),-real(0x35c5d916ffb10000LL),
+      -reale(4114,0x3d13bbebb8000LL),reale(3690,0x5a8c0420a0000LL),
       -real(0x7db1fc00af08000LL),real(0x3ee56918f4c50000LL),
       -real(0x41d90b24a2658000LL),real(0xb0f65a4ddefb800LL),
-      reale(0xe213d7LL,0x5c99263f881e3LL),
+      reale(14816215,0x5c99263f881e3LL),
       // C4[6], coeff of eps^14, polynomial in n of order 12
-      reale(84445LL,0xef949ea0f8000LL),reale(19627LL,0xf0e541fbce000LL),
-      reale(-80834LL,0xa08bedc824000LL),reale(34575LL,0x1644d05d7a000LL),
-      reale(6828LL,0x4cfbe5cb50000LL),reale(8288LL,0x561945cd26000LL),
-      reale(-12839LL,0x92c1cd7e7c000LL),real(0x15c5608ef0ed2000LL),
-      -real(0x653ba29de4a58000LL),reale(4217LL,0x4b5d86267e000LL),
+      reale(84445,0xef949ea0f8000LL),reale(19627,0xf0e541fbce000LL),
+      -reale(80833,0x5f741237dc000LL),reale(34575,0x1644d05d7a000LL),
+      reale(6828,0x4cfbe5cb50000LL),reale(8288,0x561945cd26000LL),
+      -reale(12838,0x6d3e328184000LL),real(0x15c5608ef0ed2000LL),
+      -real(0x653ba29de4a58000LL),reale(4217,0x4b5d86267e000LL),
       -real(0x3b46409683b2c000LL),-real(0x974d654f27d6000LL),
-      -real(0x674dea252558c00LL),reale(0xe213d7LL,0x5c99263f881e3LL),
+      -real(0x674dea252558c00LL),reale(14816215,0x5c99263f881e3LL),
       // C4[6], coeff of eps^13, polynomial in n of order 13
-      reale(45373LL,0x376f121df0000LL),reale(-98872LL,0x1cf2432040000LL),
-      reale(96522LL,0x4174515a90000LL),-real(0x2d5b0f36d6d20000LL),
-      reale(-79484LL,0xacd8facf30000LL),reale(50297LL,0xf87ac09580000LL),
-      reale(3071LL,0x5d816f2bd0000LL),real(0x5cfb30543d820000LL),
-      reale(-14133LL,0xb3e4e32070000LL),reale(3907LL,0xfc9bf30ac0000LL),
-      real(0x1e5e0fff75d10000LL),reale(2700LL,0x7f35ecdd60000LL),
+      reale(45373,0x376f121df0000LL),-reale(98871,0xe30dbcdfc0000LL),
+      reale(96522,0x4174515a90000LL),-real(0x2d5b0f36d6d20000LL),
+      -reale(79483,0x53270530d0000LL),reale(50297,8337588523LL<<19),
+      reale(3071,0x5d816f2bd0000LL),real(0x5cfb30543d820000LL),
+      -reale(14132,0x4c1b1cdf90000LL),reale(3907,0xfc9bf30ac0000LL),
+      real(0x1e5e0fff75d10000LL),reale(2700,0x7f35ecdd60000LL),
       -real(0x74992b46f6e50000LL),real(0xe2f417f6bbc1000LL),
-      reale(0xe213d7LL,0x5c99263f881e3LL),
+      reale(14816215,0x5c99263f881e3LL),
       // C4[6], coeff of eps^12, polynomial in n of order 14
-      real(0x1b3ddeae39bf0000LL),reale(-7840LL,0x9d9685eca8000LL),
-      reale(39400LL,0x7dae3b2360000LL),reale(-93478LL,0xd2285ae218000LL),
-      reale(106917LL,0x5f76290ad0000LL),reale(-25707LL,0xb68a548f88000LL),
-      reale(-70222LL,0x72a254240000LL),reale(66679LL,0x434a03a4f8000LL),
-      reale(-7927LL,0x3e84b5b9b0000LL),reale(-5105LL,0xb39463d268000LL),
-      reale(-10826LL,0x68d0386120000LL),reale(8339LL,0xae0935c7d8000LL),
+      real(0x1b3ddeae39bf0000LL),-reale(7839,0x62697a1358000LL),
+      reale(39400,0x7dae3b2360000LL),-reale(93477,0x2dd7a51de8000LL),
+      reale(106917,0x5f76290ad0000LL),-reale(25706,0x4975ab7078000LL),
+      -reale(70221,0xf8d5dabdc0000LL),reale(66679,0x434a03a4f8000LL),
+      -reale(7926,0xc17b4a4650000LL),-reale(5104,0x4c6b9c2d98000LL),
+      -reale(10825,0x972fc79ee0000LL),reale(8339,0xae0935c7d8000LL),
       -real(0xb5e35652d770000LL),-real(0xb97cf166cab8000LL),
-      -real(0x1484ac4370939000LL),reale(0xe213d7LL,0x5c99263f881e3LL),
+      -real(0x1484ac4370939000LL),reale(14816215,0x5c99263f881e3LL),
       // C4[6], coeff of eps^11, polynomial in n of order 15
       real(0x1da928c9710000LL),real(0xef3463c3520000LL),
-      real(0x1433e03669f30000LL),reale(-6122LL,0x376a120b40000LL),
-      reale(32842LL,0x2af7b46f50000LL),reale(-85282LL,0x2598a6c160000LL),
-      reale(113905LL,0x4294ec3770000LL),reale(-54342LL,0xcaad3e8780000LL),
-      reale(-49474LL,0x7f29202790000LL),reale(78594LL,0x71ba158da0000LL),
-      reale(-27685LL,0x2a1d166fb0000LL),reale(-5832LL,0xca82c803c0000LL),
-      reale(-2438LL,0xc289213fd0000LL),reale(8713LL,0x93ccba19e0000LL),
-      reale(-3468LL,0xf03336c7f0000LL),real(0xf2bb44edf33d000LL),
-      reale(0xe213d7LL,0x5c99263f881e3LL),
+      real(0x1433e03669f30000LL),-reale(6121,0xc895edf4c0000LL),
+      reale(32842,0x2af7b46f50000LL),-reale(85281,0xda67593ea0000LL),
+      reale(113905,0x4294ec3770000LL),-reale(54341,1789231857LL<<19),
+      -reale(49473,0x80d6dfd870000LL),reale(78594,0x71ba158da0000LL),
+      -reale(27684,0xd5e2e99050000LL),-reale(5831,3589595121LL<<18),
+      -reale(2437,0x3d76dec030000LL),reale(8713,0x93ccba19e0000LL),
+      -reale(3467,0xfccc93810000LL),real(0xf2bb44edf33d000LL),
+      reale(14816215,0x5c99263f881e3LL),
       // C4[6], coeff of eps^10, polynomial in n of order 16
       real(0xcab3dac70000LL),real(0x3665759289000LL),real(0x12ce11eabe2000LL),
       real(0x9df70180dbb000LL),real(0xdfd754eb8954000LL),
-      reale(-4488LL,0xa22dc969ed000LL),reale(25849LL,0xff24cd52c6000LL),
-      reale(-73909LL,0xe84c249d1f000LL),reale(115119LL,0x8d3c9a9638000LL),
-      reale(-83692LL,0xbe01c1fd51000LL),reale(-14376LL,0x52590d21aa000LL),
-      reale(76590LL,0xeb60670083000LL),reale(-52129LL,0x656e27c31c000LL),
-      reale(7010LL,0x5a128dfcb5000LL),reale(3866LL,0xf6d75c088e000LL),
+      -reale(4487,0x5dd2369613000LL),reale(25849,0xff24cd52c6000LL),
+      -reale(73908,0x17b3db62e1000LL),reale(115119,0x8d3c9a9638000LL),
+      -reale(83691,0x41fe3e02af000LL),-reale(14375,0xada6f2de56000LL),
+      reale(76590,0xeb60670083000LL),-reale(52128,0x9a91d83ce4000LL),
+      reale(7010,0x5a128dfcb5000LL),reale(3866,0xf6d75c088e000LL),
       real(0x469f50315e7e7000LL),-real(0x4bbe9f188165a200LL),
-      reale(0xe213d7LL,0x5c99263f881e3LL),
+      reale(14816215,0x5c99263f881e3LL),
       // C4[6], coeff of eps^9, polynomial in n of order 17
-      real(0x8ddfb274000LL),real(0x1ccea7740000LL),real(0x6b145a40c000LL),
+      real(0x8ddfb274000LL),real(120826333LL<<18),real(0x6b145a40c000LL),
       real(0x1dc5136a58000LL),real(0xab5ca60ba4000LL),real(0x5e28748a970000LL),
-      real(0x8cad0403953c000LL),reale(-3004LL,0x514eade088000LL),
-      reale(18707LL,0x350991ecd4000LL),reale(-59285LL,0x97ba9abba0000LL),
-      reale(107702LL,0xd776bbe6c000LL),reale(-107580LL,0x1cbface6b8000LL),
-      reale(33813LL,0xa464b8b604000LL),reale(48035LL,0x81a4fa0dd0000LL),
-      reale(-64048LL,0x5bd9a37f9c000LL),reale(31225LL,0xe027c1dce8000LL),
-      reale(-5636LL,0x2a297fc734000LL),-real(0x50368754849c400LL),
-      reale(0xe213d7LL,0x5c99263f881e3LL),
+      real(0x8cad0403953c000LL),-reale(3003,0xaeb1521f78000LL),
+      reale(18707,0x350991ecd4000LL),-reale(59284,0x6845654460000LL),
+      reale(107702,0xd776bbe6c000LL),-reale(107579,0xe340531948000LL),
+      reale(33813,0xa464b8b604000LL),reale(48035,0x81a4fa0dd0000LL),
+      -reale(64047,0xa4265c8064000LL),reale(31225,0xe027c1dce8000LL),
+      -reale(5635,0xd5d68038cc000LL),-real(0x50368754849c400LL),
+      reale(14816215,0x5c99263f881e3LL),
       // C4[6], coeff of eps^8, polynomial in n of order 18
-      real(0x7240494000LL),real(0x13aa0f5a000LL),real(0x3b2b77a0000LL),
+      real(490704814080LL),real(0x13aa0f5a000LL),real(31022013LL<<17),
       real(0xc68497e6000LL),real(0x2fcbb8aac000LL),real(0xdd4302e72000LL),
       real(0x534405e9b8000LL),real(0x30298b6eefe000LL),
       real(0x4c5dcf34c0c4000LL),-real(0x6d574da684a76000LL),
-      reale(11873LL,0x12afe73bd0000LL),reale(-42010LL,0xaf63f69e16000LL),
-      reale(89073LL,0x6259ee06dc000LL),reale(-115684LL,0x519b5d84a2000LL),
-      reale(82889LL,0x8f2a67cde8000LL),reale(-11936LL,0x4e23ac852e000LL),
-      reale(-33313LL,0x30fa5dbcf4000LL),reale(28876LL,0xae4eda7bba000LL),
-      reale(-8102LL,0x7c9ba7ae5ac00LL),reale(0xe213d7LL,0x5c99263f881e3LL),
+      reale(11873,5016286141LL<<16),-reale(42009,0x509c0961ea000LL),
+      reale(89073,0x6259ee06dc000LL),-reale(115683,0xae64a27b5e000LL),
+      reale(82889,0x8f2a67cde8000LL),-reale(11935,0xb1dc537ad2000LL),
+      -reale(33312,0xcf05a2430c000LL),reale(28876,0xae4eda7bba000LL),
+      -reale(8101,0x83645851a5400LL),reale(14816215,0x5c99263f881e3LL),
       // C4[6], coeff of eps^7, polynomial in n of order 19
-      real(0x1bc8d4000LL),real(0x4471f8000LL),real(0xb3f21c000LL),
-      real(0x1feb1c0000LL),real(0x6346964000LL),real(0x1597d188000LL),
-      real(0x56a252ac000LL),real(0x1a3bcf550000LL),real(0xa648bd1f4000LL),
+      real(7458340864LL),real(560703LL<<15),real(48303816704LL),
+      real(522951LL<<18),real(426386014208LL),real(45283889LL<<15),
+      real(0x56a252ac000LL),real(440127317LL<<16),real(0xa648bd1f4000LL),
       real(0x65fb114118000LL),real(0xacffeca0b3c000LL),
-      -real(0x10c1b440c2720000LL),real(0x7d0a1c0732284000LL),
-      reale(-7962LL,0xe4c185e0a8000LL),reale(19682LL,0xa4af1c3bcc000LL),
-      reale(-31918LL,0x3337107c70000LL),reale(34094LL,0x3798b7b14000LL),
-      reale(-23102LL,0xa7c0ead038000LL),reale(8983LL,0xdb34fa045c000LL),
-      -real(0x5f40c0b45d798c00LL),reale(0x4b5bf2LL,0x74330cbfd80a1LL),
+      -real(0x860da206139LL<<17),real(0x7d0a1c0732284000LL),
+      -reale(7961,0x1b3e7a1f58000LL),reale(19682,0xa4af1c3bcc000LL),
+      -reale(31917,0xccc8ef8390000LL),reale(34094,0x3798b7b14000LL),
+      -reale(23101,0x583f152fc8000LL),reale(8983,0xdb34fa045c000LL),
+      -real(0x5f40c0b45d798c00LL),reale(4938738,0x74330cbfd80a1LL),
       // C4[6], coeff of eps^6, polynomial in n of order 20
-      real(0x26d5c000LL),real(0x58391000LL),real(0xd2f06000LL),
-      real(0x216bfb000LL),real(0x5aaab0000LL),real(0x10a5565000LL),
-      real(0x35c765a000LL),real(0xc335dcf000LL),real(0x334e2804000LL),
-      real(0x106060339000LL),real(0x6e2b415ae000LL),real(0x484c62e3a3000LL),
-      real(0x848c0aa1558000LL),-real(0xe0b56a0582f3000LL),
-      real(0x745df25523d02000LL),reale(-8379LL,0x93d80ded77000LL),
-      reale(23938LL,0x5996b3a2ac000LL),reale(-45882LL,0x299f27b2e1000LL),
-      reale(58395LL,0x10d8591c56000LL),reale(-42674LL,0xaec45c6b4b000LL),
-      reale(12954LL,0x665fd1a892600LL),reale(0xe213d7LL,0x5c99263f881e3LL),
+      real(651542528),real(1480134656),real(3538968576LL),real(8971595776LL),
+      real(371371LL<<16),real(71493373952LL),real(230978592768LL),
+      real(838422294528LL),real(0x334e2804000LL),real(0x106060339000LL),
+      real(0x6e2b415ae000LL),real(0x484c62e3a3000LL),real(0x848c0aa1558000LL),
+      -real(0xe0b56a0582f3000LL),real(0x745df25523d02000LL),
+      -reale(8378,0x6c27f21289000LL),reale(23938,0x5996b3a2ac000LL),
+      -reale(45881,0xd660d84d1f000LL),reale(58395,0x10d8591c56000LL),
+      -reale(42673,0x513ba394b5000LL),reale(12954,0x665fd1a892600LL),
+      reale(14816215,0x5c99263f881e3LL),
       // C4[7], coeff of eps^26, polynomial in n of order 0
-      real(0x13118000LL),real(0x75209f8d91abLL),
+      real(9763<<15),real(0x75209f8d91abLL),
       // C4[7], coeff of eps^25, polynomial in n of order 1
-      real(0x3a6d50000LL),real(0x138f18400LL),real(0x4082f7e0f93b2fLL),
+      real(239317LL<<16),real(5250319360LL),real(0x4082f7e0f93b2fLL),
       // C4[7], coeff of eps^24, polynomial in n of order 2
-      real(0x5599e7780000LL),-real(0x8cfe739c0000LL),real(0x28b139bd9800LL),
-      reale(3231LL,0x13f0854e6fdc3LL),
+      real(179518703LL<<19),-real(591371495LL<<18),real(0x28b139bd9800LL),
+      reale(3231,0x13f0854e6fdc3LL),
       // C4[7], coeff of eps^23, polynomial in n of order 3
-      real(0x2cef3d4baf0000LL),-real(0x23eaa989be0000LL),
-      real(0xef66e7c50000LL),real(0x5431e6572400LL),
-      reale(119549LL,0xe1c344562ad2fLL),
+      real(0x2cef3d4baf0000LL),-real(77130417375LL<<17),real(0xef66e7c50000LL),
+      real(0x5431e6572400LL),reale(119549,0xe1c344562ad2fLL),
       // C4[7], coeff of eps^22, polynomial in n of order 4
-      real(0x33ca8094LL<<20),-real(0x1146ab51LL<<20),real(0x951494aLL<<20),
-      -real(0xee7ce1bLL<<20),real(0x3ccfc393c000LL),
-      reale(3856LL,0x72a333c0b70f1LL),
+      real(217227301LL<<22),-real(289844049LL<<20),real(78161061LL<<21),
+      -real(250072603LL<<20),real(0x3ccfc393c000LL),
+      reale(3856,0x72a333c0b70f1LL),
       // C4[7], coeff of eps^21, polynomial in n of order 5
-      real(0x4e0ae513ee240000LL),-real(0xc0c2e3c4cfLL<<20),
-      real(0x2891fd50f97c0000LL),-real(0x1a095b35a9f80000LL),
-      -real(0x52187764ac0000LL),-real(0x22c21c78f4d000LL),
-      reale(0x104dbd1LL,0x1c132c21ebd41LL),
+      real(0x4e0ae513ee240000LL),-real(827903427791LL<<20),
+      real(0xa247f543e5fLL<<18),-real(0x3412b66b53fLL<<19),
+      -real(88149449003LL<<18),-real(0x22c21c78f4d000LL),
+      reale(17095633,0x1c132c21ebd41LL),
       // C4[7], coeff of eps^20, polynomial in n of order 6
-      real(0x2faca7f6766LL<<20),-real(0x28623ac8329LL<<20),
-      real(0x55c963456a4LL<<20),-real(0x11bb996f2dfLL<<20),
-      real(0x108bab390a2LL<<20),-real(0x17b5bd88f85LL<<20),
-      real(0x53401a2130be000LL),reale(0x104dbd1LL,0x1c132c21ebd41LL),
+      real(0x17d653fb3b3LL<<21),-real(0x28623ac8329LL<<20),
+      real(0x157258d15a9LL<<22),-real(0x11bb996f2dfLL<<20),
+      real(568501848145LL<<21),-real(0x17b5bd88f85LL<<20),
+      real(0x53401a2130be000LL),reale(17095633,0x1c132c21ebd41LL),
       // C4[7], coeff of eps^19, polynomial in n of order 7
-      -real(0x83a0cdc49940000LL),reale(-2693LL,0x7731e95580000LL),
-      real(0x5a9e6c539a840000LL),-real(0xc24642d3d7LL<<20),
-      real(0x4606e5f7741c0000LL),-real(0x210591b042380000LL),
-      -real(0x1ee58ad2bcc0000LL),-real(0xe57fab5d571000LL),
-      reale(0x104dbd1LL,0x1c132c21ebd41LL),
+      -real(0x83a0cdc49940000LL),-reale(2692,4590415189LL<<19),
+      real(0x5a9e6c539a840000LL),-real(834402440151LL<<20),
+      real(0x4606e5f7741c0000LL),-real(0x420b2360847LL<<19),
+      -real(530800397043LL<<18),-real(0xe57fab5d571000LL),
+      reale(17095633,0x1c132c21ebd41LL),
       // C4[7], coeff of eps^18, polynomial in n of order 8
-      reale(3472LL,0x3c58cb98LL<<20),reale(-5077LL,0x2e5a0d05LL<<20),
-      -real(0x23c291494eLL<<20),-real(0x6a9c1a13021LL<<20),
-      reale(2051LL,0xf8c055ccLL<<20),-real(0xa41376ff47LL<<20),
-      real(0x1f44e68cce6LL<<20),-real(0x245598aac6dLL<<20),
-      real(0x69deaea556c4000LL),reale(0x104dbd1LL,0x1c132c21ebd41LL),
+      reale(3472,126556531LL<<23),-reale(5076,3517313787LL<<20),
+      -real(76794078375LL<<21),-real(0x6a9c1a13021LL<<20),
+      reale(2051,1043338611LL<<22),-real(704701202247LL<<20),
+      real(0xfa27346673LL<<21),-real(0x245598aac6dLL<<20),
+      real(0x69deaea556c4000LL),reale(17095633,0x1c132c21ebd41LL),
       // C4[7], coeff of eps^17, polynomial in n of order 9
-      reale(15000LL,0xe6601a91a0000LL),-real(0x261369ca72fLL<<20),
-      real(0x42e9870754860000LL),reale(-5749LL,0x340bba88c0000LL),
-      real(0x3d07c1e90b320000LL),-real(0x1f816cb77f780000LL),
-      real(0x7fb986a3c79e0000LL),-real(0x26578914f47c0000LL),
+      reale(15000,0xe6601a91a0000LL),-real(0x261369ca72fLL<<20),
+      real(0x42e9870754860000LL),-reale(5748,0xcbf4457740000LL),
+      real(0x3d07c1e90b320000LL),-real(0x3f02d96efefLL<<19),
+      real(0x7fb986a3c79e0000LL),-real(0x995e2453d1fLL<<18),
       -real(0x4ae4d5f0bb60000LL),-real(0x2b86668e596d800LL),
-      reale(0x104dbd1LL,0x1c132c21ebd41LL),
+      reale(17095633,0x1c132c21ebd41LL),
       // C4[7], coeff of eps^16, polynomial in n of order 10
-      -real(0x73f9d78b0d9LL<<20),real(0x4e7a9c7503280000LL),
-      reale(15740LL,0x2392a74cLL<<20),reale(-4249LL,0xcc7c095580000LL),
-      -real(0x407b444d4cfLL<<20),reale(-4969LL,0xc0c67a4080000LL),
-      reale(2638LL,0x3b83d7e6LL<<20),real(0x88c04a730380000LL),
-      real(0x44a3b895a7bLL<<20),-real(0x3a51363dc5180000LL),
-      real(0x855f1c455087000LL),reale(0x104dbd1LL,0x1c132c21ebd41LL),
+      -real(0x73f9d78b0d9LL<<20),real(0x9cf538ea065LL<<19),
+      reale(15740,149203411LL<<22),-reale(4248,1728572757LL<<19),
+      -real(0x407b444d4cfLL<<20),-reale(4968,2121468799LL<<19),
+      reale(2638,499248115LL<<21),real(0x88c04a730380000LL),
+      real(0x44a3b895a7bLL<<20),-real(0x74a26c7b8a3LL<<19),
+      real(0x855f1c455087000LL),reale(17095633,0x1c132c21ebd41LL),
       // C4[7], coeff of eps^15, polynomial in n of order 11
-      reale(61154LL,0xdd701642e0000LL),reale(-66912LL,0x73fb09c140000LL),
-      reale(7800LL,0xcd3506c5a0000LL),reale(6879LL,0x58cd2b71LL<<20),
-      reale(13340LL,0xebc72e5460000LL),reale(-8996LL,0xe1a48b80c0000LL),
-      -real(0x58226c8c268e0000LL),reale(-2528LL,0xf4a2f95880000LL),
-      reale(3789LL,0xabee5235e0000LL),-real(0x1eca7dff19fc0000LL),
+      reale(61154,0xdd701642e0000LL),-reale(66911,9396541691LL<<18),
+      reale(7800,0xcd3506c5a0000LL),reale(6879,1489841009LL<<20),
+      reale(13340,0xebc72e5460000LL),-reale(8995,2037240317LL<<18),
+      -real(0x58226c8c268e0000LL),-reale(2527,381291855LL<<19),
+      reale(3789,0xabee5235e0000LL),-real(0x7b29f7fc67fLL<<18),
       -real(0x7ff214bf2760000LL),-real(0x75bce0e31735800LL),
-      reale(0x104dbd1LL,0x1c132c21ebd41LL),
+      reale(17095633,0x1c132c21ebd41LL),
       // C4[7], coeff of eps^14, polynomial in n of order 12
-      reale(-101657LL,0x71ae74f4LL<<20),reale(53043LL,0x223d2095LL<<20),
-      reale(45405LL,0x1cb67f76LL<<20),reale(-76256LL,0x609f66d7LL<<20),
-      reale(23050LL,0x5b912df8LL<<20),reale(9407LL,0xe5488f19LL<<20),
-      reale(7022LL,0xeb6bec7aLL<<20),reale(-12739LL,0xf0edb55bLL<<20),
-      real(0x4df9e23a6fcLL<<20),real(0x118e235259dLL<<20),
-      reale(2782LL,0x4bc9e97eLL<<20),-real(0x61e77094421LL<<20),
-      real(0x9e768b34c754000LL),reale(0x104dbd1LL,0x1c132c21ebd41LL),
+      -reale(101656,596927171LL<<22),reale(53043,574431381LL<<20),
+      reale(45405,240861115LL<<21),-reale(76255,2673908009LL<<20),
+      reale(23050,192030143LL<<23),reale(9407,3846737689LL<<20),
+      reale(7022,1974859325LL<<21),-reale(12738,252856997LL<<20),
+      real(0x137e788e9bfLL<<22),real(0x118e235259dLL<<20),
+      reale(2782,635761855LL<<21),-real(0x61e77094421LL<<20),
+      real(0x9e768b34c754000LL),reale(17095633,0x1c132c21ebd41LL),
       // C4[7], coeff of eps^13, polynomial in n of order 13
-      reale(-21346LL,0x393f573540000LL),reale(63537LL,0xd254ce1fLL<<20),
-      reale(-101991LL,0xec282a30c0000LL),reale(73206LL,0xb939804c80000LL),
-      reale(21832LL,0x8bfbf3440000LL),reale(-78786LL,0x910c2aeaLL<<20),
-      reale(42984LL,0xe415720fc0000LL),reale(4706LL,0x1b30244780000LL),
-      -real(0x6fb64418f6cc0000LL),reale(-11953LL,0x9ad612b5LL<<20),
-      reale(6137LL,0x3819368ec0000LL),real(0x1ceca02d88280000LL),
-      -real(0x2d5a1d362dc0000LL),-real(0x14a7906c9982d000LL),
-      reale(0x104dbd1LL,0x1c132c21ebd41LL),
+      -reale(21345,0xc6c0a8cac0000LL),reale(63537,3528773151LL<<20),
+      -reale(101990,1331648317LL<<18),reale(73206,6215106713LL<<19),
+      reale(21832,587136209LL<<18),-reale(78785,930736779LL<<21),
+      reale(42984,0xe415720fc0000LL),reale(4706,912279695LL<<19),
+      -real(0x6fb64418f6cc0000LL),-reale(11952,1697246539LL<<20),
+      reale(6137,3764705851LL<<18),real(0x39d9405b105LL<<19),
+      -real(779141568695LL<<18),-real(0x14a7906c9982d000LL),
+      reale(17095633,0x1c132c21ebd41LL),
       // C4[7], coeff of eps^12, polynomial in n of order 14
-      -real(0x767f211b2aLL<<20),reale(2615LL,0x8698ee3LL<<20),
-      reale(-16755LL,0x8d55257cLL<<20),reale(54113LL,0x58a8d2e5LL<<20),
-      reale(-98063LL,0x29302962LL<<20),reale(91200LL,0xa6fbe637LL<<20),
-      reale(-9604LL,0xcc190aa8LL<<20),reale(-69012LL,0xe24608f9LL<<20),
-      reale(62980LL,0xeeb0c36eLL<<20),reale(-11146LL,0x45c9b4bLL<<20),
-      reale(-7196LL,0xf4bcdd4LL<<20),reale(-4458LL,0x211add4dLL<<20),
-      reale(7974LL,0x231c3faLL<<20),reale(-2669LL,0xd8692f1fLL<<20),
-      real(0x8b8039451326000LL),reale(0x104dbd1LL,0x1c132c21ebd41LL),
+      -real(254469508501LL<<21),reale(2615,141135587LL<<20),
+      -reale(16754,480949921LL<<22),reale(54113,1487459045LL<<20),
+      -reale(98062,1801972559LL<<21),reale(91200,2801526327LL<<20),
+      -reale(9603,108846763LL<<23),-reale(69011,498726663LL<<20),
+      reale(62980,2002280887LL<<21),-reale(11145,4221789365LL<<20),
+      -reale(7195,1009585291LL<<22),-reale(4457,3739558579LL<<20),
+      reale(7974,18407933LL<<21),-reale(2668,664195297LL<<20),
+      real(0x8b8039451326000LL),reale(17095633,0x1c132c21ebd41LL),
       // C4[7], coeff of eps^11, polynomial in n of order 15
-      -real(0x4fc4c2e840000LL),-real(0x2f63f986280000LL),
+      -real(5353180065LL<<18),-real(25442595013LL<<19),
       -real(0x4cec268118c0000LL),real(0x702c4e5b497LL<<20),
-      reale(-12305LL,0xaa8fdfeec0000LL),reale(43346LL,0x51cc5fb080000LL),
-      reale(-88872LL,0xa25817fe40000LL),reale(103468LL,0x37d02f3aLL<<20),
-      reale(-46366LL,0x45288ce5c0000LL),reale(-41350LL,0xda855d8380000LL),
-      reale(72365LL,0x9597fe7540000LL),reale(-36581LL,0x66b4b4ddLL<<20),
-      real(0x3033fbc727cc0000LL),reale(3419LL,0x57c1ab9680000LL),
+      -reale(12304,5733646405LL<<18),reale(43346,2744696673LL<<19),
+      -reale(88871,6285139975LL<<18),reale(103468,468195229LL<<21),
+      -reale(46365,0xbad7731a40000LL),-reale(41349,1257587961LL<<19),
+      reale(72365,0x9597fe7540000LL),-reale(36580,2571848483LL<<20),
+      real(0xc0cfef1c9f3LL<<18),reale(3419,2944620333LL<<19),
       real(0x5d00262e0cc40000LL),-real(0x44e0e913b4a79000LL),
-      reale(0x104dbd1LL,0x1c132c21ebd41LL),
+      reale(17095633,0x1c132c21ebd41LL),
       // C4[7], coeff of eps^10, polynomial in n of order 16
-      -real(0x1526f7LL<<24),-real(0x68a88b9LL<<20),-real(0x2a358682LL<<20),
-      -real(0x1a3e60a4bLL<<20),-real(0x2ce197fb94LL<<20),
-      real(0x4592e53c723LL<<20),reale(-8215LL,0x6decc35aLL<<20),
-      reale(31749LL,0xea580d91LL<<20),reale(-73862LL,0xa3060848LL<<20),
-      reale(105371LL,0xded9faffLL<<20),reale(-81326LL,0xa57bc536LL<<20),
-      reale(5533LL,0x9b69716dLL<<20),reale(54935LL,0x1e8a6c24LL<<20),
-      reale(-54850LL,0xf340a2dbLL<<20),reale(23331LL,0xfc74cf12LL<<20),
-      reale(-3572LL,0xc712b149LL<<20),-real(0xa766ab1fb094000LL),
-      reale(0x104dbd1LL,0x1c132c21ebd41LL),
+      -real(1386231LL<<24),-real(109742265LL<<20),-real(354075457LL<<21),
+      -real(7044729419LL<<20),-real(48190848741LL<<22),
+      real(0x4592e53c723LL<<20),-reale(8214,1225367123LL<<21),
+      reale(31749,3931639185LL<<20),-reale(73861,194985719LL<<23),
+      reale(105371,3738827519LL<<20),-reale(81325,759307621LL<<21),
+      reale(5533,2607378797LL<<20),reale(54935,128097033LL<<22),
+      -reale(54849,213867813LL<<20),reale(23331,2117756809LL<<21),
+      -reale(3571,955076279LL<<20),-real(0xa766ab1fb094000LL),
+      reale(17095633,0x1c132c21ebd41LL),
       // C4[7], coeff of eps^9, polynomial in n of order 17
-      -real(0x8d7a970000LL),-real(0x209c2bLL<<20),-real(0x8adb5490000LL),
-      -real(0x2cb1dafa0000LL),-real(0x12da13bdb0000LL),
-      -real(0xc549443040000LL),-real(0x1658a10fa0d0000LL),
-      real(0x250f39cc17720000LL),reale(-4743LL,0xffd1f9c610000LL),
-      reale(20239LL,0xc76fee6a80000LL),reale(-53603LL,0xd95b5dbaf0000LL),
-      reale(92339LL,0x3cdcf0cde0000LL),reale(-101237LL,0xf904c301d0000LL),
-      reale(59785LL,0x22c992c540000LL),real(0x5c1211516deb0000LL),
-      reale(-32945LL,0x793fa374a0000LL),reale(24775LL,0x5aee521590000LL),
-      reale(-6658LL,0x521f990157400LL),reale(0x104dbd1LL,0x1c132c21ebd41LL),
+      -real(9271959LL<<16),-real(2137131LL<<20),-real(0x8adb5490000LL),
+      -real(374926717LL<<17),-real(5060508635LL<<16),-real(0xc549443040000LL),
+      -real(0x1658a10fa0d0000LL),real(0x250f39cc17720000LL),
+      -reale(4742,48259999LL<<16),reale(20239,6692003029LL<<19),
+      -reale(53602,0x26a4a24510000LL),reale(92339,8168900207LL<<17),
+      -reale(101236,0x6fb3cfe30000LL),reale(59785,2334542613LL<<18),
+      real(0x5c1211516deb0000LL),-reale(32944,0x86c05c8b60000LL),
+      reale(24775,0x5aee521590000LL),-reale(6657,0xade066fea8c00LL),
+      reale(17095633,0x1c132c21ebd41LL),
       // C4[7], coeff of eps^8, polynomial in n of order 18
-      -real(0x3d7880000LL),-real(0xbe0fc0000LL),-real(165572LL<<20),
-      -real(0x9aa4840000LL),-real(0x2adb4f80000LL),-real(0xe6e14cc0000LL),
-      -real(0x666b5b3LL<<20),-real(0x46e9da3540000LL),
-      -real(0x89237b88680000LL),real(0xf5289483e640000LL),
-      reale(-2142LL,0x9739a99eLL<<20),reale(10163LL,0xf2a381edc0000LL),
-      reale(-30732LL,0x5cd062280000LL),reale(63101LL,0xdb7b98c940000LL),
-      reale(-89757LL,0x471a126fLL<<20),reale(87316LL,0x63109160c0000LL),
-      reale(-55354LL,0xda1bbeb80000LL),reale(20534LL,0x8754849c40000LL),
-      reale(-3369LL,0xdcc223e5d800LL),reale(0x104dbd1LL,0x1c132c21ebd41LL),
+      -real(31473LL<<19),-real(194623LL<<18),-real(41393LL<<22),
+      -real(2533665LL<<18),-real(5617311LL<<19),-real(60523827LL<<18),
+      -real(107394483LL<<20),-real(4758923477LL<<18),-real(73625727245LL<<19),
+      real(0xf5289483e640000LL),-reale(2141,878914353LL<<21),
+      reale(10163,0xf2a381edc0000LL),-reale(30731,8395289531LL<<19),
+      reale(63101,0xdb7b98c940000LL),-reale(89756,3102076305LL<<20),
+      reale(87316,6648120707LL<<18),-reale(55353,8132528169LL<<19),
+      reale(20534,9081852529LL<<18),-reale(3368,0xf233ddc1a2800LL),
+      reale(17095633,0x1c132c21ebd41LL),
       // C4[7], coeff of eps^7, polynomial in n of order 19
-      -real(0x12550000LL),-real(0x32460000LL),-real(0x94070000LL),
-      -real(7579LL<<20),-real(0x689d90000LL),-real(0x1a131a0000LL),
-      -real(0x790f8b0000LL),-real(0x2ae74440000LL),-real(0x1427d8dd0000LL),
-      -real(0xee3402ee0000LL),-real(0x1efc2a618f0000LL),
-      real(0x3c3fa7bdb280000LL),-real(0x243e4ae81d610000LL),
-      reale(3081LL,0xb7f72703e0000LL),reale(-10640LL,0xbbbd057ed0000LL),
-      reale(25534LL,0x3d6d8c6940000LL),reale(-43525LL,0xba33d0a9b0000LL),
-      reale(51336LL,0x52534b86a0000LL),reale(-35936LL,0x932c17ee90000LL),
-      reale(10668LL,0x544ee8e52d400LL),reale(0x104dbd1LL,0x1c132c21ebd41LL),
+      -real(4693<<16),-real(6435<<17),-real(37895LL<<16),-real(7579LL<<20),
+      -real(428505LL<<16),-real(854413LL<<17),-real(7933835LL<<16),
+      -real(11246865LL<<18),-real(338155741LL<<16),-real(0xee3402ee0000LL),
+      -real(0x1efc2a618f0000LL),real(517531990885LL<<19),
+      -real(0x243e4ae81d610000LL),reale(3081,0xb7f72703e0000LL),
+      -reale(10639,0x4442fa8130000LL),reale(25534,4122358181LL<<18),
+      -reale(43524,0x45cc2f5650000LL),reale(51336,0x52534b86a0000LL),
+      -reale(35935,0x6cd3e81170000LL),reale(10668,0x544ee8e52d400LL),
+      reale(17095633,0x1c132c21ebd41LL),
       // C4[8], coeff of eps^26, polynomial in n of order 0
-      real(0xd4e0000LL),real(0x7c72a9866ac5bLL),
+      real(1703<<17),real(0x7c72a9866ac5bLL),
       // C4[8], coeff of eps^25, polynomial in n of order 1
-      -real(177229LL<<20),real(0xb18730000LL),real(0x491cf6cbc520f1LL),
+      -real(177229LL<<20),real(727155LL<<16),real(0x491cf6cbc520f1LL),
       // C4[8], coeff of eps^24, polynomial in n of order 2
-      -real(0x93f6bc6840000LL),-real(0x14f4b1f20000LL),-real(0x88fc23ec000LL),
-      reale(40280LL,0xc561288d94a7fLL),
+      -real(9929683361LL<<18),-real(175790329LL<<17),-real(0x88fc23ec000LL),
+      reale(40280,0xc561288d94a7fLL),
       // C4[8], coeff of eps^23, polynomial in n of order 3
-      -real(0x161894ee480000LL),real(0x12aa85331LL<<20),
-      -real(0x1b65cf99180000LL),real(0x62bf29e3e8000LL),
-      reale(135489LL,0xddbb2b5096ef1LL),
+      -real(11862711753LL<<19),real(5010641713LL<<20),-real(14709027619LL<<19),
+      real(0x62bf29e3e8000LL),reale(135489,0xddbb2b5096ef1LL),
       // C4[8], coeff of eps^22, polynomial in n of order 4
-      -real(0xb7278f038LL<<20),real(0x3d693f0c92LL<<20),
-      -real(0x1f4e13827cLL<<20),-real(0x1842f819aLL<<20),
-      -real(0xacc29a2990000LL),reale(0x1ae058LL,0x42813317aa23dLL),
+      -real(6145646087LL<<23),real(131879372361LL<<21),
+      -real(33613471903LL<<22),-real(3256336589LL<<21),
+      -real(0xacc29a2990000LL),reale(1761368,0x42813317aa23dLL),
       // C4[8], coeff of eps^21, polynomial in n of order 5
-      -real(0x354a11b9e2580000LL),real(0x4dd877fc48aLL<<20),
+      -real(0x6a942373c4bLL<<19),real(0x26ec3bfe245LL<<21),
       -real(0x8f791d3a3680000LL),real(0x11c215e6335LL<<20),
-      -real(0x161c113e61780000LL),real(0x4429220c0f48000LL),
-      reale(0x127a3caLL,0xdb8d32044f89fLL),
+      -real(0x2c38227cc2fLL<<19),real(0x4429220c0f48000LL),
+      reale(19375050,0xdb8d32044f89fLL),
       // C4[8], coeff of eps^20, polynomial in n of order 6
-      reale(-2935LL,0xe58446bfLL<<20),real(0x351db209cd880000LL),
-      -real(0xd982d18896LL<<20),real(0x46b48a654db80000LL),
-      -real(0x1951684536bLL<<20),-real(0x2829437b4180000LL),
-      -real(0x1536c8746170000LL),reale(0x127a3caLL,0xdb8d32044f89fLL),
+      -reale(2934,444315969LL<<20),real(0x6a3b64139b1LL<<19),
+      -real(467101336651LL<<21),real(0x8d6914ca9b7LL<<19),
+      -real(0x1951684536bLL<<20),-real(344981960323LL<<19),
+      -real(0x1536c8746170000LL),reale(19375050,0xdb8d32044f89fLL),
       // C4[8], coeff of eps^19, polynomial in n of order 7
-      reale(-3512LL,0x918ea85280000LL),-real(0x204aea957e3LL<<20),
-      reale(-2146LL,0xdb7d866f80000LL),real(0x67ab1c5581eLL<<20),
-      -real(0x13d8d488380000LL),real(0x21f191654dfLL<<20),
-      -real(0x2114d7448e680000LL),real(0x53ff9bb26958000LL),
-      reale(0x127a3caLL,0xdb8d32044f89fLL),
+      -reale(3511,3705843547LL<<19),-real(0x204aea957e3LL<<20),
+      -reale(2145,1225061153LL<<19),real(0x33d58e2ac0fLL<<21),
+      -real(10655273223LL<<19),real(0x21f191654dfLL<<20),
+      -real(0x4229ae891cdLL<<19),real(0x53ff9bb26958000LL),
+      reale(19375050,0xdb8d32044f89fLL),
       // C4[8], coeff of eps^18, polynomial in n of order 8
-      reale(2327LL,0xd507b61LL<<24),reale(3002LL,0x513d8c0aLL<<20),
-      reale(-5099LL,0xd4e3b86cLL<<20),-real(0x25ceba7a2LL<<20),
-      -real(0x31e92424bf8LL<<20),real(0x799d0d96612LL<<20),
-      -real(0x19490c8c4dcLL<<20),-real(0x490dda8e9aLL<<20),
-      -real(0x33e11620e250000LL),reale(0x127a3caLL,0xdb8d32044f89fLL),
+      reale(2327,223378273LL<<24),reale(3002,681494021LL<<21),
+      -reale(5098,180818405LL<<22),-real(5074441169LL<<21),
+      -real(428729715071LL<<23),real(0x3cce86cb309LL<<21),
+      -real(434398966071LL<<22),-real(156882519885LL<<21),
+      -real(0x33e11620e250000LL),reale(19375050,0xdb8d32044f89fLL),
       // C4[8], coeff of eps^17, polynomial in n of order 9
-      reale(-6704LL,0xd4115b5880000LL),reale(14458LL,0x65ca13f4LL<<20),
-      -real(0x3b9765d55080000LL),-real(0x9192a65f9LL<<20),
-      reale(-5283LL,0x27cb55f680000LL),real(0x6668ccb1d7aLL<<20),
+      -reale(6703,1474120015LL<<19),reale(14458,426935549LL<<22),
+      -real(511886207649LL<<19),-real(39076914681LL<<20),
+      -reale(5282,7254660115LL<<19),real(0x33346658ebdLL<<21),
       real(0xd2bcdb640d80000LL),real(0x48aecde6f2dLL<<20),
-      -real(0x3353b5e7c2b80000LL),real(0x650db91f67c8000LL),
-      reale(0x127a3caLL,0xdb8d32044f89fLL),
+      -real(0x66a76bcf857LL<<19),real(0x650db91f67c8000LL),
+      reale(19375050,0xdb8d32044f89fLL),
       // C4[8], coeff of eps^16, polynomial in n of order 10
-      reale(-41675LL,0xbe119ede80000LL),reale(-7594LL,0x9ca8964e40000LL),
-      real(0x45ab72cec72LL<<20),reale(15266LL,0x7545b9b5c0000LL),
-      reale(-4857LL,0x86556f8580000LL),-real(0x76ec691ccd2c0000LL),
-      reale(-3303LL,0x6ff9fcb9LL<<20),reale(3252LL,0xd63fbdd4c0000LL),
+      -reale(41674,2212282947LL<<19),-reale(7593,6666692295LL<<18),
+      real(0x22d5b967639LL<<21),reale(15266,7870015191LL<<18),
+      -reale(4856,4082442485LL<<19),-real(0x76ec691ccd2c0000LL),
+      -reale(3302,2416313159LL<<20),reale(3252,0xd63fbdd4c0000LL),
       -real(0xa56dc66b5380000LL),-real(0x5b75ff5133c0000LL),
-      -real(0x7d0ead839928000LL),reale(0x127a3caLL,0xdb8d32044f89fLL),
+      -real(0x7d0ead839928000LL),reale(19375050,0xdb8d32044f89fLL),
       // C4[8], coeff of eps^15, polynomial in n of order 11
-      reale(6774LL,0xfe31cddf80000LL),reale(68916LL,0x2d269395LL<<20),
-      reale(-58359LL,0x7051a71280000LL),reale(3030LL,0x95a6df84LL<<20),
-      reale(8321LL,0x3ad7949580000LL),reale(11199LL,0x3b4c11f3LL<<20),
-      reale(-10211LL,0xf3ffaac880000LL),-real(0x2197fd386beLL<<20),
-      -real(0x88d945e9f480000LL),reale(2764LL,0x777313d1LL<<20),
-      -real(0x51f911c354180000LL),real(0x6eb0baaefa68000LL),
-      reale(0x127a3caLL,0xdb8d32044f89fLL),
+      reale(6774,8529353663LL<<19),reale(68916,757502869LL<<20),
+      -reale(58358,4821135835LL<<19),reale(3030,627685345LL<<22),
+      reale(8321,1974413611LL<<19),reale(11199,994841075LL<<20),
+      -reale(10210,402696815LL<<19),-real(0x10cbfe9c35fLL<<21),
+      -real(0x88d945e9f480000LL),reale(2764,2004030417LL<<20),
+      -real(0xa3f22386a83LL<<19),real(0x6eb0baaefa68000LL),
+      reale(19375050,0xdb8d32044f89fLL),
       // C4[8], coeff of eps^14, polynomial in n of order 12
-      reale(80789LL,0x4afe5ef8LL<<20),reale(-92414LL,0x96a1aa2aLL<<20),
-      reale(33037LL,0xb34c5644LL<<20),reale(52633LL,0xcda5b00eLL<<20),
-      reale(-71258LL,0x423ab55LL<<24),reale(21774LL,0x3718ba52LL<<20),
-      reale(9867LL,0xdc15875cLL<<20),reale(2235LL,0x613d3636LL<<20),
-      reale(-11864LL,0xbcde17a8LL<<20),reale(4226LL,0xe3b4e8faLL<<20),
-      real(0x31b8c0ba174LL<<20),real(0x4eeb4b1fdeLL<<20),
-      -real(0x1429c96cdeb90000LL),reale(0x127a3caLL,0xdb8d32044f89fLL),
+      reale(80789,157273055LL<<23),-reale(92413,883895019LL<<21),
+      reale(33037,752031121LL<<22),reale(52633,1725093895LL<<21),
+      -reale(71257,198988971LL<<24),reale(21774,462183721LL<<21),
+      reale(9867,923099607LL<<22),reale(2235,815700763LL<<21),
+      -reale(11863,140786955LL<<23),reale(4226,1910142077LL<<21),
+      real(854212143197LL<<22),real(169477509103LL<<21),
+      -real(0x1429c96cdeb90000LL),reale(19375050,0xdb8d32044f89fLL),
       // C4[8], coeff of eps^13, polynomial in n of order 13
-      reale(7986LL,0x4cd10c1180000LL),reale(-31050LL,0x5a7fe822LL<<20),
-      reale(71398LL,0xc143b88280000LL),reale(-96608LL,0x1b16cd97LL<<20),
-      reale(60036LL,0xdbd0ec4380000LL),reale(24533LL,0x47d2cc6cLL<<20),
-      reale(-73259LL,0x19a1ef7480000LL),reale(45499LL,0xc587f2c1LL<<20),
-      -real(0x1f535f83dca80000LL),reale(-6269LL,0x8c8d0eb6LL<<20),
-      reale(-5890LL,0x10af2ca680000LL),reale(7129LL,0x77d5fe6bLL<<20),
-      reale(-2061LL,0x3b31cee780000LL),real(0x4aa8326c4b38000LL),
-      reale(0x127a3caLL,0xdb8d32044f89fLL),
+      reale(7986,2577537059LL<<19),-reale(31049,1388317679LL<<21),
+      reale(71398,6484881669LL<<19),-reale(96607,3840488041LL<<20),
+      reale(60036,7375804551LL<<19),reale(24533,301249307LL<<22),
+      -reale(73258,7729848599LL<<19),reale(45499,3314021057LL<<20),
+      -real(0x3ea6bf07b95LL<<19),-reale(6268,968456357LL<<21),
+      -reale(5889,8030103219LL<<19),reale(7129,2010513003LL<<20),
+      -reale(2060,6603694641LL<<19),real(0x4aa8326c4b38000LL),
+      reale(19375050,0xdb8d32044f89fLL),
       // C4[8], coeff of eps^12, polynomial in n of order 14
-      real(0x19b7c4e0f7LL<<20),-real(0x2af3a20d75d80000LL),
-      reale(5489LL,0xbd385526LL<<20),reale(-23108LL,0xdabe65c980000LL),
-      reale(59020LL,0x343e88d5LL<<20),reale(-93670LL,0x3beae65080000LL),
-      reale(83160LL,0x242e42c4LL<<20),reale(-14192LL,0x406831f780000LL),
-      reale(-55803LL,0xf73b11b3LL<<20),reale(63340LL,0xe56b447e80000LL),
-      reale(-24300LL,0xdb812462LL<<20),reale(-2686LL,0xc38ce5a580000LL),
-      reale(2706LL,0x4a412191LL<<20),real(0x69f4dee012c80000LL),
-      -real(0x3e4f75bd92cb0000LL),reale(0x127a3caLL,0xdb8d32044f89fLL),
+      real(110457315575LL<<20),-real(0x55e7441aebbLL<<19),
+      reale(5489,1587292819LL<<21),-reale(23107,1250112621LL<<19),
+      reale(59020,876513493LL<<20),-reale(93669,6579434335LL<<19),
+      reale(83160,151752881LL<<22),-reale(14191,6428793873LL<<19),
+      -reale(55802,147123789LL<<20),reale(63340,7698024701LL<<19),
+      -reale(24299,306146767LL<<21),-reale(2685,2028352693LL<<19),
+      reale(2706,1245782417LL<<20),real(0xd3e9bdc0259LL<<19),
+      -real(0x3e4f75bd92cb0000LL),reale(19375050,0xdb8d32044f89fLL),
       // C4[8], coeff of eps^11, polynomial in n of order 15
-      real(0xa6c2bf580000LL),real(0x73fcd1afLL<<20),real(0xe000999c080000LL),
-      -real(0x18cc7eefd8aLL<<20),reale(3397LL,0x57665c9b80000LL),
-      reale(-15562LL,0x2b59a6fdLL<<20),reale(44311LL,0x617f59e680000LL),
-      reale(-82041LL,0x83d2aea4LL<<20),reale(95750LL,0x6b882f0180000LL),
-      reale(-56327LL,0x49f5d8cbLL<<20),reale(-14076LL,0x3175e14c80000LL),
-      reale(56094LL,0x8aaf24d2LL<<20),reale(-46281LL,0x1a6a8e2780000LL),
-      reale(17576LL,0xfb594219LL<<20),reale(-2262LL,0x39d01af280000LL),
-      -real(0xc8e19a260718000LL),reale(0x127a3caLL,0xdb8d32044f89fLL),
+      real(349722603LL<<19),real(1945948591LL<<20),real(0xe000999c080000LL),
+      -real(852080688837LL<<21),reale(3397,2932652343LL<<19),
+      -reale(15561,3567671555LL<<20),reale(44311,3271472077LL<<19),
+      -reale(82040,520836183LL<<22),reale(95750,3608174083LL<<19),
+      -reale(56326,3054118709LL<<20),-reale(14075,6930316647LL<<19),
+      reale(56094,1163367017LL<<21),-reale(46280,7703552945LL<<19),
+      reale(17576,4216930841LL<<20),-reale(2261,6650055195LL<<19),
+      -real(0xc8e19a260718000LL),reale(19375050,0xdb8d32044f89fLL),
       // C4[8], coeff of eps^10, polynomial in n of order 16
-      real(106398LL<<24),real(0x9377d6LL<<20),real(0x44feec4LL<<20),
-      real(0x326cada2LL<<20),real(0x67002b868LL<<20),-real(0xc295517d72LL<<20),
-      real(0x7045d79918cLL<<20),reale(-9007LL,0x977a7f5aLL<<20),
-      reale(28706LL,0x584fd4fLL<<24),reale(-61777LL,0xaecc34c6LL<<20),
-      reale(90600LL,0x34124d54LL<<20),reale(-86126LL,0xe1950b92LL<<20),
-      reale(41671LL,0x69508578LL<<20),reale(9900LL,0xe7fa147eLL<<20),
-      reale(-31427LL,0x3e3e181cLL<<20),reale(21427LL,0x558fd84aLL<<20),
-      reale(-5581LL,0xf70d350210000LL),reale(0x127a3caLL,0xdb8d32044f89fLL),
+      real(53199LL<<25),real(4832235LL<<21),real(18086833LL<<22),
+      real(422991569LL<<21),real(3456128781LL<<23),-real(417864400569LL<<21),
+      real(0x1c1175e6463LL<<22),-reale(9006,876789843LL<<21),
+      reale(28706,92601679LL<<24),-reale(61776,681174429LL<<21),
+      reale(90600,218403669LL<<22),-reale(86125,255162935LL<<21),
+      reale(41671,220860591LL<<23),reale(9900,1945963071LL<<21),
+      -reale(31426,812677625LL<<22),reale(21427,717745189LL<<21),
+      -reale(5580,0x8f2cafdf0000LL),reale(19375050,0xdb8d32044f89fLL),
       // C4[8], coeff of eps^9, polynomial in n of order 17
-      real(0x5cef80000LL),real(99288LL<<20),real(0x75c8080000LL),
-      real(0x2bad8dLL<<20),real(0x1576c2180000LL),real(0x1092b662LL<<20),
-      real(0x2405b55f280000LL),-real(0x490d2ef189LL<<20),
-      real(0x2dc13d73c1380000LL),reale(-4044LL,0xdf9645ecLL<<20),
-      reale(14485LL,0x7f6528a480000LL),reale(-36112LL,0xadb9dce1LL<<20),
-      reale(64526LL,0x4ec29dc580000LL),reale(-82902LL,0x61fc1376LL<<20),
-      reale(74876LL,0xa109259680000LL),reale(-44998LL,0x991eb9cbLL<<20),
-      reale(16070LL,0x802be23780000LL),reale(-2567LL,0x2f156f6c78000LL),
-      reale(0x127a3caLL,0xdb8d32044f89fLL),
+      real(47583LL<<19),real(12411LL<<23),real(964865LL<<19),
+      real(2862477LL<<20),real(45013059LL<<19),real(139025201LL<<21),
+      real(19339324389LL<<19),-real(313753792905LL<<20),
+      real(0x5b827ae7827LL<<19),-reale(4043,135949957LL<<22),
+      reale(14485,4274671945LL<<19),-reale(36111,1380328223LL<<20),
+      reale(64526,2642754443LL<<19),-reale(82901,1325528645LL<<21),
+      reale(74876,5403462445LL<<19),-reale(44997,1726039605LL<<20),
+      reale(16070,4300719215LL<<19),-reale(2566,0xd0ea909388000LL),
+      reale(19375050,0xdb8d32044f89fLL),
       // C4[8], coeff of eps^8, polynomial in n of order 18
-      real(0x10740000LL),real(0x38fa0000LL),real(3498LL<<20),
-      real(0x3b6460000LL),real(0x12dccc0000LL),real(0x759a120000LL),
-      real(0x3d0fff80000LL),real(0x3224b15e0000LL),real(0x74cfa8d240000LL),
-      -real(0x100412726d60000LL),real(0xaf94f028d5LL<<20),
-      -real(0x433703efa18a0000LL),reale(4345LL,0xa637f297c0000LL),
-      reale(-12474LL,0x608555e420000LL),reale(26308LL,0x13a90aa80000LL),
-      reale(-40980LL,0x3929b258e0000LL),reale(45533LL,0x15d1ab9d40000LL),
-      reale(-30802LL,0x35013915a0000LL),reale(8983LL,0xdb34fa045c000LL),
-      reale(0x127a3caLL,0xdb8d32044f89fLL),
+      real(1053<<18),real(7293<<17),real(1749LL<<21),real(121635LL<<17),
+      real(309043LL<<18),real(3853577LL<<17),real(8003583LL<<19),
+      real(420632751LL<<17),real(7839064905LL<<18),-real(550302356331LL<<17),
+      real(754118043861LL<<20),-real(0x433703efa18a0000LL),
+      reale(4345,0xa637f297c0000LL),-reale(12473,0x9f7aaa1be0000LL),
+      reale(26308,41230677LL<<19),-reale(40979,0xc6d64da720000LL),
+      reale(45533,1464249973LL<<18),-reale(30801,0xcafec6ea60000LL),
+      reale(8983,0xdb34fa045c000LL),reale(19375050,0xdb8d32044f89fLL),
       // C4[9], coeff of eps^26, polynomial in n of order 0
-      real(0x1cbe0000LL),real(0xf744df0e6c69LL),
+      real(3679<<17),real(0xf744df0e6c69LL),
       // C4[9], coeff of eps^25, polynomial in n of order 1
-      -real(48841LL<<20),-real(0x5237d0000LL),real(0x19892cc90d5217fLL),
+      -real(48841LL<<20),-real(336765LL<<16),real(0x19892cc90d5217fLL),
       // C4[9], coeff of eps^24, polynomial in n of order 2
-      real(0x5e11584LL<<24),-real(0x7ae8f52LL<<24),real(0x18b06bafLL<<20),
-      reale(45019LL,0xaf6c96bc5ad9dLL),
+      real(24659297LL<<26),-real(64440233LL<<25),real(414215087LL<<20),
+      reale(45019,0xaf6c96bc5ad9dLL),
       // C4[9], coeff of eps^23, polynomial in n of order 3
-      real(0x2afbd497b3080000LL),-real(0x115bb8ed6d9LL<<20),
-      -real(0x171a49d86a80000LL),-real(0xb7278b5afc8000LL),
-      reale(0x14a6bc4LL,0x9b0737e6b33fdLL),
+      real(0x55f7a92f661LL<<19),-real(0x115bb8ed6d9LL<<20),
+      -real(198450589909LL<<19),-real(0xb7278b5afc8000LL),
+      reale(21654468,0x9b0737e6b33fdLL),
       // C4[9], coeff of eps^22, polynomial in n of order 4
-      real(0x61ad926cf8LL<<20),-real(0x408c282a2LL<<20),
-      real(0x1bc97c585cLL<<20),-real(0x1dcf828996LL<<20),
-      real(0x517eabcb370000LL),reale(0x1e09ccLL,0xe17edcf27917LL),
+      real(52440485279LL<<23),-real(8663417169LL<<21),real(29836121623LL<<22),
+      -real(64017745099LL<<21),real(0x517eabcb370000LL),
+      reale(1968588,0xe17edcf27917LL),
       // C4[9], coeff of eps^21, polynomial in n of order 5
-      real(0x14eee8a775280000LL),-real(0x13e3b5a8a36LL<<20),
-      real(0x454e86f699180000LL),-real(0x12a27ad79ebLL<<20),
-      -real(0x2a8afba4bf80000LL),-real(0x1a278f54ba58000LL),
-      reale(0x14a6bc4LL,0x9b0737e6b33fdLL),
+      real(0x29ddd14eea5LL<<19),-real(683397694747LL<<21),
+      real(0x8a9d0ded323LL<<19),-real(0x12a27ad79ebLL<<20),
+      -real(365440747903LL<<19),-real(0x1a278f54ba58000LL),
+      reale(21654468,0x9b0737e6b33fdLL),
       // C4[9], coeff of eps^20, polynomial in n of order 6
-      -real(0x1e186c22038LL<<20),reale(-2450LL,0x46146d24LL<<20),
-      real(0x4d9b33e84bLL<<24),real(0x5381480dfcLL<<20),
-      real(0x24355d37098LL<<20),-real(0x1df4fe903ecLL<<20),
-      real(0x42edd4687ca0000LL),reale(0x14a6bc4LL,0x9b0737e6b33fdLL),
+      -real(258517517319LL<<23),-reale(2449,779805879LL<<22),
+      real(333316352075LL<<24),real(89662817151LL<<22),
+      real(311028248083LL<<23),-real(514657501435LL<<22),
+      real(0x42edd4687ca0000LL),reale(21654468,0x9b0737e6b33fdLL),
       // C4[9], coeff of eps^19, polynomial in n of order 7
-      reale(4708LL,0xb1e8552280000LL),reale(-3968LL,0xd2254fedLL<<20),
-      -real(0x2552f5e566080000LL),-real(0x46718ec5982LL<<20),
-      real(0x6fe7320794c80000LL),-real(0xee4b32a131LL<<20),
-      -real(0x3f5905d6b680000LL),-real(0x392f1a561e88000LL),
-      reale(0x14a6bc4LL,0x9b0737e6b33fdLL),
+      reale(4708,5969586757LL<<19),-reale(3967,769306643LL<<20),
+      -real(0x4aa5ebcacc1LL<<19),-real(0x2338c762cc1LL<<21),
+      real(0xdfce640f299LL<<19),-real(0xee4b32a131LL<<20),
+      -real(544152989037LL<<19),-real(0x392f1a561e88000LL),
+      reale(21654468,0x9b0737e6b33fdLL),
       // C4[9], coeff of eps^18, polynomial in n of order 8
-      reale(10651LL,0x8768b13LL<<24),reale(2483LL,0x450654eeLL<<20),
-      real(0x5c595ba5184LL<<20),reale(-5107LL,0x5014808aLL<<20),
-      real(0x316556e0b98LL<<20),real(0xa4c5f0e846LL<<20),
-      real(0x4adc873ac2cLL<<20),-real(0x2d0002ebf1eLL<<20),
-      real(0x4cd03e8801b0000LL),reale(0x14a6bc4LL,0x9b0737e6b33fdLL),
+      reale(10651,141986579LL<<24),reale(2483,579021431LL<<21),
+      real(0x171656e9461LL<<22),-reale(5106,1475723195LL<<21),
+      real(424307179891LL<<23),real(353847768099LL<<21),
+      real(0x12b721ceb0bLL<<22),-real(0x16800175f8fLL<<21),
+      real(0x4cd03e8801b0000LL),reale(21654468,0x9b0737e6b33fdLL),
       // C4[9], coeff of eps^17, polynomial in n of order 9
-      reale(-12599LL,0xef10737480000LL),reale(-5706LL,0x74b78194LL<<20),
-      reale(14434LL,0xee01835380000LL),-real(0x53c43a7b401LL<<20),
-      -real(0x61ad28bb29d80000LL),reale(-3832LL,0x8df1c64aLL<<20),
-      reale(2686LL,0x31eaa90180000LL),real(0x3be070e5d5LL<<20),
-      -real(0x33650f7a6f80000LL),-real(0x7fc3df35f858000LL),
-      reale(0x14a6bc4LL,0x9b0737e6b33fdLL),
+      -reale(12598,568269079LL<<19),-reale(5705,584195995LL<<22),
+      reale(14434,7986153127LL<<19),-real(0x53c43a7b401LL<<20),
+      -real(0xc35a517653bLL<<19),-reale(3831,956767451LL<<21),
+      reale(2686,1674924547LL<<19),real(257168565717LL<<20),
+      -real(441477690591LL<<19),-real(0x7fc3df35f858000LL),
+      reale(21654468,0x9b0737e6b33fdLL),
       // C4[9], coeff of eps^16, polynomial in n of order 10
-      reale(73082LL,0x4e564b9LL<<24),reale(-36373LL,0x7f41b758LL<<20),
-      reale(-8447LL,0xc935334LL<<24),reale(3801LL,0xf6d72828LL<<20),
-      reale(13381LL,0x1077fefLL<<24),reale(-7346LL,0x22839078LL<<20),
-      -real(0x6256df74a6LL<<24),-real(0x25f5d15e8b8LL<<20),
-      reale(2675LL,0x8c635e5LL<<24),-real(0x44947d61c68LL<<20),
-      real(0x4cdddf4aa2c0000LL),reale(0x14a6bc4LL,0x9b0737e6b33fdLL),
+      reale(73082,82142393LL<<24),-reale(36372,269994261LL<<23),
+      -reale(8446,14363443LL<<26),reale(3801,517661957LL<<23),
+      reale(13381,17268719LL<<24),-reale(7345,464489969LL<<23),
+      -real(211182139987LL<<25),-real(326075858199LL<<23),
+      reale(2675,147207653LL<<24),-real(589098042253LL<<23),
+      real(0x4cdddf4aa2c0000LL),reale(21654468,0x9b0737e6b33fdLL),
       // C4[9], coeff of eps^15, polynomial in n of order 11
-      reale(-70229LL,0xa07f0ae380000LL),reale(-3666LL,0xc491e03dLL<<20),
-      reale(67162LL,0xf21f0fbe80000LL),reale(-56078LL,0x8af680a4LL<<20),
-      reale(5918LL,0xe3bb81a980000LL),reale(10294LL,0xb5678d8bLL<<20),
-      reale(5723LL,0x46912f8480000LL),reale(-10994LL,0x9023e3d2LL<<20),
-      reale(2675LL,0xc09c102f80000LL),real(0x3a39e82b059LL<<20),
+      -reale(70228,3204573753LL<<19),-reale(3665,997072835LL<<20),
+      reale(67162,8124243837LL<<19),-reale(56077,490889175LL<<22),
+      reale(5918,7641432915LL<<19),reale(10294,3043462539LL<<20),
+      reale(5723,2367840009LL<<19),-reale(10993,938348055LL<<21),
+      reale(2675,6462906463LL<<19),real(0x3a39e82b059LL<<20),
       real(0xb502c3128a80000LL),-real(0x1358f80d9c038000LL),
-      reale(0x14a6bc4LL,0x9b0737e6b33fdLL),
+      reale(21654468,0x9b0737e6b33fdLL),
       // C4[9], coeff of eps^14, polynomial in n of order 12
-      reale(-45940LL,0x24dbede8LL<<20),reale(81202LL,0xab78046eLL<<20),
-      reale(-84012LL,0x416f614cLL<<20),reale(28155LL,0x2c1be7aLL<<20),
-      reale(46736LL,0xfe25c5fLL<<24),reale(-68203LL,0x7452da6LL<<20),
-      reale(29667LL,0x5b15eb94LL<<20),reale(5608LL,0x4d3a29b2LL<<20),
-      reale(-4402LL,0x5668a1f8LL<<20),reale(-6764LL,0x13320a5eLL<<20),
-      reale(6284LL,0xed7a38dcLL<<20),-real(0x63dfacb5896LL<<20),
-      real(0x21519ecdd470000LL),reale(0x14a6bc4LL,0x9b0737e6b33fdLL),
+      -reale(45939,459571779LL<<23),reale(81202,1438384695LL<<21),
+      -reale(84011,799287213LL<<22),reale(28155,23125821LL<<21),
+      reale(46736,266493023LL<<24),-reale(68202,2086496557LL<<21),
+      reale(29667,382040805LL<<22),reale(5608,647828697LL<<21),
+      -reale(4401,355658689LL<<23),-reale(6763,1986460369LL<<21),
+      reale(6284,996052535LL<<22),-real(0x31efd65ac4bLL<<21),
+      real(0x21519ecdd470000LL),reale(21654468,0x9b0737e6b33fdLL),
       // C4[9], coeff of eps^13, polynomial in n of order 13
-      reale(-2322LL,0x2b20b06180000LL),reale(11407LL,0x435cd442LL<<20),
-      reale(-34997LL,0x40296c3280000LL),reale(70236LL,0xb47417c7LL<<20),
-      reale(-89751LL,0xaea2de1380000LL),reale(59647LL,0x7ee0032cLL<<20),
-      reale(10736LL,0xf4ed55a480000LL),reale(-61424LL,0x2a22c811LL<<20),
-      reale(52845LL,0xa6156a8580000LL),reale(-15061LL,0x5525d816LL<<20),
-      reale(-4429LL,0xec2fec5680000LL),real(0x7ac3d0f14dbLL<<20),
-      real(0x70761ded2b780000LL),-real(0x3854598234228000LL),
-      reale(0x14a6bc4LL,0x9b0737e6b33fdLL),
+      -reale(2321,7142809405LL<<19),reale(11407,565078561LL<<21),
+      -reale(34996,6437021595LL<<19),reale(70236,3027507143LL<<20),
+      -reale(89750,2730116057LL<<19),reale(59647,532152523LL<<22),
+      reale(10736,8218389321LL<<19),-reale(61423,3588044783LL<<20),
+      reale(52845,5572842763LL<<19),-reale(15060,1433211893LL<<21),
+      -reale(4428,664807251LL<<19),real(0x7ac3d0f14dbLL<<20),
+      real(0xe0ec3bda56fLL<<19),-real(0x3854598234228000LL),
+      reale(21654468,0x9b0737e6b33fdLL),
       // C4[9], coeff of eps^12, polynomial in n of order 14
-      -real(0x449768678LL<<20),real(0x88f54af434LL<<20),
-      -real(0x539fb48063LL<<24),reale(7105LL,0xb995afacLL<<20),
-      reale(-24000LL,0x547ebb18LL<<20),reale(54661LL,0x26ae4964LL<<20),
-      reale(-84323LL,0xfcd087eLL<<24),reale(82245LL,0x3cac3bdcLL<<20),
-      reale(-34605LL,0xaa152aa8LL<<20),reale(-26938LL,0xf8d90194LL<<20),
-      reale(54122LL,0x9f886dfLL<<24),reale(-38796LL,0xa25c150cLL<<20),
-      reale(13349LL,0x83391c38LL<<20),-real(0x58411cd0f3cLL<<20),
-      -real(0xd052410afde0000LL),reale(0x14a6bc4LL,0x9b0737e6b33fdLL),
+      -real(2301546703LL<<23),real(147057720589LL<<22),
+      -real(359161692259LL<<24),reale(7105,778398699LL<<22),
+      -reale(23999,359671965LL<<23),reale(54661,162239065LL<<22),
+      -reale(84322,1670081LL<<25),reale(82245,254480119LL<<22),
+      -reale(34604,180181675LL<<23),-reale(26937,29999003LL<<22),
+      reale(54122,167282399LL<<24),-reale(38795,392755901LL<<22),
+      reale(13349,275194759LL<<23),-real(0x161047343cfLL<<22),
+      -real(0xd052410afde0000LL),reale(21654468,0x9b0737e6b33fdLL),
       // C4[9], coeff of eps^11, polynomial in n of order 15
-      -real(0xfec42280000LL),-real(0xcdf9a71LL<<20),-real(0x1d4c8ca4780000LL),
-      real(0x3e336d9db6LL<<20),-real(0x28c1ec22f9c80000LL),
-      reale(3762LL,0xdc36d29dLL<<20),reale(-14050LL,0x6323bbe80000LL),
-      reale(36325LL,0x8201c224LL<<20),reale(-66630LL,0x3d526fa980000LL),
-      reale(85703LL,0xfd7eda2bLL<<20),reale(-71811LL,0x4c937c0480000LL),
-      reale(27704LL,0xd8be4892LL<<20),reale(15098LL,0xc34d8af80000LL),
-      reale(-29449LL,0xc84d0b39LL<<20),reale(18689LL,0x65a6b58a80000LL),
-      reale(-4755LL,0xcf6a7c02c8000LL),reale(0x14a6bc4LL,0x9b0737e6b33fdLL),
+      -real(33392709LL<<19),-real(215980657LL<<20),-real(15729792143LL<<19),
+      real(133575397083LL<<21),-real(0x5183d845f39LL<<19),
+      reale(3762,3694580381LL<<20),-reale(14049,8382023811LL<<19),
+      reale(36325,545288329LL<<22),-reale(66629,6532309165LL<<19),
+      reale(85703,4252949035LL<<20),-reale(71810,6020466679LL<<19),
+      reale(27704,1818174537LL<<21),reale(15098,409579871LL<<19),
+      -reale(29448,934474951LL<<20),reale(18689,3410848533LL<<19),
+      -reale(4754,0x309583fd38000LL),reale(21654468,0x9b0737e6b33fdLL),
       // C4[9], coeff of eps^10, polynomial in n of order 16
-      -real(1786LL<<24),-real(185250LL<<20),-real(0x18668cLL<<20),
-      -real(0x14cc9c6LL<<20),-real(0x323a0eb8LL<<20),real(0x72034e536LL<<20),
-      -real(0x50a5b1f364LL<<20),real(0x1fc80a59612LL<<20),
-      reale(-2109LL,0x8ef2603LL<<24),reale(6191LL,0x3c40258eLL<<20),
-      reale(-13345LL,0xc8b3e0c4LL<<20),reale(21384LL,0xf627f06aLL<<20),
-      reale(-25320LL,0x349d8318LL<<20),reale(21525LL,0xd9c7d366LL<<20),
-      reale(-12381LL,0xc32fbbecLL<<20),reale(4285LL,0x77832b42LL<<20),
-      -real(0x29d9aac7ec250000LL),reale(0x6e23ecLL,0x33ad12a23bbffLL),
+      -real(893LL<<25),-real(92625LL<<21),-real(399779LL<<22),
+      -real(10904803LL<<21),-real(105333207LL<<23),real(15302554267LL<<21),
+      -real(86594321625LL<<22),real(0xfe4052cb09LL<<21),
+      -reale(2108,118544893LL<<24),reale(6191,505418439LL<<21),
+      -reale(13344,231933903LL<<22),reale(21384,2064906293LL<<21),
+      -reale(25319,426528669LL<<23),reale(21525,1826875827LL<<21),
+      -reale(12380,255070469LL<<22),reale(4285,1002542497LL<<21),
+      -real(0x29d9aac7ec250000LL),reale(7218156,0x33ad12a23bbffLL),
       // C4[9], coeff of eps^9, polynomial in n of order 17
-      -real(0x1e480000LL),-real(2280LL<<20),-real(0x312b80000LL),
-      -real(85595LL<<20),-real(0xbe2a280000LL),-real(0xabe12eLL<<20),
-      -real(0x1bb208a980000LL),real(0x43aa3de3fLL<<20),
-      -real(0x3404792da080000LL),real(0x168a78c6f8cLL<<20),
-      -real(0x68406e983e780000LL),reale(5560LL,0x170a6259LL<<20),
-      reale(-13901LL,0xc6660a2180000LL),reale(26517LL,0x5a318646LL<<20),
-      reale(-38451LL,0xd6d1ca1a80000LL),reale(40711LL,0xef5e1af3LL<<20),
-      reale(-26785LL,0xd50c31a380000LL),reale(7700LL,0x72bfb1ba98000LL),
-      reale(0x14a6bc4LL,0x9b0737e6b33fdLL),
+      -real(969<<19),-real(285LL<<23),-real(25175LL<<19),-real(85595LL<<20),
+      -real(1557829LL<<19),-real(5632151LL<<21),-real(929304915LL<<19),
+      real(18163686975LL<<20),-real(446826699585LL<<19),
+      real(387249806307LL<<22),-real(0xd080dd307cfLL<<19),
+      reale(5560,386556505LL<<20),-reale(13900,1932782525LL<<19),
+      reale(26517,756597539LL<<21),-reale(38450,1381788619LL<<19),
+      reale(40711,4015921907LL<<20),-reale(26784,1441242297LL<<19),
+      reale(7700,0x72bfb1ba98000LL),reale(21654468,0x9b0737e6b33fdLL),
       // C4[10], coeff of eps^26, polynomial in n of order 0
-      -real(0x4f040000LL),real(0x10edb70f760db7LL),
+      -real(5057<<18),real(0x10edb70f760db7LL),
       // C4[10], coeff of eps^25, polynomial in n of order 1
-      -real(9802LL<<24),real(28314LL<<20),real(0x4082f7e0f93b2fLL),
+      -real(4901LL<<25),real(14157LL<<21),real(0x4082f7e0f93b2fLL),
       // C4[10], coeff of eps^24, polynomial in n of order 2
-      -real(0x1092926LL<<24),-real(0x1f7f63LL<<24),-real(0x11a4d3aLL<<20),
-      reale(7108LL,0x5f112546294adLL),
+      -real(8688787LL<<25),-real(2064227LL<<24),-real(9250461LL<<21),
+      reale(7108,0x5f112546294adLL),
       // C4[10], coeff of eps^23, polynomial in n of order 3
-      real(0x2b4d78f6LL<<24),real(0x2e8b64984LL<<24),-real(0x2b39cf62eLL<<24),
-      real(0x699f0055eLL<<20),reale(0x342bf6LL,0x9f3708d39590dLL),
+      real(363248763LL<<25),real(3123548769LL<<26),-real(5801671447LL<<25),
+      real(14176223919LL<<21),reale(3419126,0x9f3708d39590dLL),
       // C4[10], coeff of eps^22, polynomial in n of order 4
-      -real(0x1c8e0b16cfcLL<<20),real(0x422ec2346b3LL<<20),
-      -real(0xcfd2a114feLL<<20),-real(0x28865c39efLL<<20),
-      -real(0x1da3031e4b60000LL),reale(0x16d33beLL,0x5a813dc916f5bLL),
+      -real(490568702783LL<<22),real(0x422ec2346b3LL<<20),
+      -real(446296001151LL<<21),-real(174052882927LL<<20),
+      -real(0xed1818f25bLL<<17),reale(23933886,0x5a813dc916f5bLL),
       // C4[10], coeff of eps^21, polynomial in n of order 5
-      reale(-2586LL,0xd6a2e6ecLL<<20),real(0x34bcb74007LL<<24),
-      real(0x6e07e246f4LL<<20),real(0x25e0133cb38LL<<20),
-      -real(0x1b065081a04LL<<20),real(0x357f8d3e3c40000LL),
-      reale(0x16d33beLL,0x5a813dc916f5bLL),
+      -reale(2585,173491781LL<<22),real(226504425479LL<<24),
+      real(118144668093LL<<22),real(325346294119LL<<23),
+      -real(464280225409LL<<22),real(919092918513LL<<18),
+      reale(23933886,0x5a813dc916f5bLL),
       // C4[10], coeff of eps^20, polynomial in n of order 6
-      reale(-2657LL,0xdeecdcecLL<<20),-real(0x3538c298b86LL<<20),
-      -real(0x5912f177eb8LL<<20),real(0x640b15f2316LL<<20),
-      -real(0x6d9a831e5cLL<<20),-real(0x31ad449d4eLL<<20),
-      -real(0x3c512000d040000LL),reale(0x16d33beLL,0x5a813dc916f5bLL),
+      -reale(2656,138725573LL<<22),-real(0x1a9c614c5c3LL<<21),
+      -real(765139808215LL<<23),real(0x32058af918bLL<<21),
+      -real(117685929879LL<<22),-real(106680176295LL<<21),
+      -real(0xf144800341LL<<18),reale(23933886,0x5a813dc916f5bLL),
       // C4[10], coeff of eps^19, polynomial in n of order 7
-      reale(3432LL,0x4e74f9d4LL<<20),reale(2930LL,0x87085408LL<<20),
-      reale(-4578LL,0x70547bcLL<<20),real(0x81973624bLL<<24),
-      real(0x32ee2212a4LL<<20),real(0x4b5e677d958LL<<20),
-      -real(0x275d5b5d774LL<<20),real(0x3a718439ef40000LL),
-      reale(0x16d33beLL,0x5a813dc916f5bLL),
+      reale(3432,329072245LL<<22),reale(2930,283183745LL<<23),
+      -reale(4577,1044295185LL<<22),real(34786730571LL<<24),
+      real(54685893801LL<<22),real(647412775723LL<<23),
+      -real(676279973341LL<<22),real(0xe9c610e7bdLL<<18),
+      reale(23933886,0x5a813dc916f5bLL),
       // C4[10], coeff of eps^18, polynomial in n of order 8
-      reale(-11085LL,0x8fea54b8LL<<20),reale(11858LL,0x4428ce71LL<<20),
-      real(0x4a8bfaee90aLL<<20),-real(0x307c82cee9dLL<<20),
-      reale(-4104LL,0xd1c95e5cLL<<20),reale(2140LL,0x80faa1d5LL<<20),
-      real(0xcfb44449aeLL<<20),-real(0xca4a87f39LL<<20),
-      -real(0x7f8004b3e7a0000LL),reale(0x16d33beLL,0x5a813dc916f5bLL),
+      -reale(11084,235058537LL<<23),reale(11858,1143524977LL<<20),
+      real(0x2545fd77485LL<<21),-real(0x307c82cee9dLL<<20),
+      -reale(4103,193833065LL<<22),reale(2140,2163909077LL<<20),
+      real(446041302231LL<<21),-real(54302113593LL<<20),
+      -real(0x7f8004b3e7a0000LL),reale(23933886,0x5a813dc916f5bLL),
       // C4[10], coeff of eps^17, polynomial in n of order 9
-      reale(-16526LL,0x6c5d10b8LL<<20),reale(-12874LL,0x88ee71cLL<<24),
-      -real(0x5e7810d2938LL<<20),reale(13789LL,0x243b975LL<<24),
-      reale(-4638LL,0x964d9ad8LL<<20),-real(0x7fb9ba5572LL<<24),
-      -real(0x4173ffec718LL<<20),reale(2541LL,0x1cb9027LL<<24),
-      -real(0x39666317308LL<<20),real(0x349e63a5ac80000LL),
-      reale(0x16d33beLL,0x5a813dc916f5bLL),
+      -reale(16525,309616105LL<<23),-reale(12873,31213113LL<<26),
+      -real(811482588455LL<<23),reale(13789,37992821LL<<24),
+      -reale(4637,221662373LL<<23),-real(274288421561LL<<25),
+      -real(562238052579LL<<23),reale(2541,30117927LL<<24),
+      -real(493061811809LL<<23),real(451991259993LL<<19),
+      reale(23933886,0x5a813dc916f5bLL),
       // C4[10], coeff of eps^16, polynomial in n of order 10
-      reale(-4542LL,0x7bb81428LL<<20),reale(9880LL,0x570203e4LL<<20),
-      reale(-5570LL,0x1d13282LL<<24),-real(0x2717ac11fa4LL<<20),
-      real(0x48f10632c18LL<<20),real(0x49be65276d4LL<<20),
-      -real(0x56ac461dbfLL<<24),real(0xd204c29b4cLL<<20),
-      real(0x8778499408LL<<20),real(0x254e1d61c4LL<<20),
-      -real(0x2a036589e880000LL),reale(0x342bf6LL,0x9f3708d39590dLL),
+      -reale(4541,277413243LL<<23),reale(9880,364937465LL<<22),
+      -reale(5569,118974143LL<<25),-real(671603509225LL<<22),
+      real(626562721155LL<<23),real(0x126f9949db5LL<<22),
+      -real(372257463743LL<<24),real(225505748691LL<<22),
+      real(72729834113LL<<23),real(40056084593LL<<22),
+      -real(360891225041LL<<19),reale(3419126,0x9f3708d39590dLL),
       // C4[10], coeff of eps^15, polynomial in n of order 11
-      reale(82722LL,0xe9e9d128LL<<20),reale(-64702LL,0xc3657b3LL<<24),
-      real(0xd88117da38LL<<20),reale(58506LL,0xbc1f3dcLL<<24),
-      reale(-58414LL,0x316e6548LL<<20),reale(16792LL,0x62b2905LL<<24),
-      reale(8555LL,0x57b78e58LL<<20),reale(-2318LL,0x5fa80eeLL<<24),
-      reale(-7195LL,0xfa5c7168LL<<20),reale(5493LL,0x7232557LL<<24),
-      -real(0x4dba35cd588LL<<20),real(0x6c0ce28f480000LL),
-      reale(0x16d33beLL,0x5a813dc916f5bLL),
+      reale(82722,490551845LL<<23),-reale(64701,63547469LL<<24),
+      real(116234844999LL<<23),reale(58506,49315063LL<<26),
+      -reale(58413,433206103LL<<23),reale(16792,103491845LL<<24),
+      reale(8555,183955915LL<<23),-reale(2317,84066185LL<<25),
+      -reale(7194,11825619LL<<23),reale(5493,119743831LL<<24),
+      -real(667673139889LL<<23),real(58009080297LL<<19),
+      reale(23933886,0x5a813dc916f5bLL),
       // C4[10], coeff of eps^14, polynomial in n of order 12
-      reale(18981LL,0x5e862c64LL<<20),reale(-46079LL,0x5efb0881LL<<20),
-      reale(76015LL,0x863d577eLL<<20),reale(-79653LL,0x2dea23bbLL<<20),
-      reale(36586LL,0x8284d598LL<<20),reale(28474LL,0x3c216875LL<<20),
-      reale(-61327LL,0xb287efb2LL<<20),reale(42595LL,0xdff09bafLL<<20),
-      reale(-8327LL,0x1c2b6eccLL<<20),reale(-5140LL,0x12845269LL<<20),
-      real(0x508a8bb3be6LL<<20),real(0x72b007891a3LL<<20),
-      -real(0x33009c87a9620000LL),reale(0x16d33beLL,0x5a813dc916f5bLL),
+      reale(18981,396462873LL<<22),-reale(46078,2701457279LL<<20),
+      reale(76015,1126083519LL<<21),-reale(79652,3524648005LL<<20),
+      reale(36586,273717939LL<<23),reale(28474,1008822389LL<<20),
+      -reale(61326,649857063LL<<21),reale(42595,3757087663LL<<20),
+      -reale(8326,955589709LL<<22),-reale(5139,3984305559LL<<20),
+      real(0x284545d9df3LL<<21),real(0x72b007891a3LL<<20),
+      -real(0x33009c87a9620000LL),reale(23933886,0x5a813dc916f5bLL),
       // C4[10], coeff of eps^13, polynomial in n of order 13
-      real(0x1f9ffe8656cLL<<20),reale(-3063LL,0x94b5dedLL<<24),
-      reale(11988LL,0xe264f34LL<<20),reale(-32440LL,0xf0983358LL<<20),
-      reale(61980LL,0xc3d38ffcLL<<20),reale(-81949LL,0x673ab9eLL<<24),
-      reale(67313LL,0xfb9bddc4LL<<20),reale(-16749LL,0xcbdb6868LL<<20),
-      reale(-34833LL,0xd656e8cLL<<20),reale(50577LL,0xf8434fLL<<24),
-      reale(-32451LL,0xf163f854LL<<20),reale(10213LL,0xef301578LL<<20),
-      -real(0x352a1ac4ee4LL<<20),-real(0xcb30b375e9c0000LL),
-      reale(0x16d33beLL,0x5a813dc916f5bLL),
+      real(543312976219LL<<22),-reale(3062,112501267LL<<24),
+      reale(11988,59347917LL<<22),-reale(32439,32307605LL<<23),
+      reale(61980,821355519LL<<22),-reale(81948,80095793LL<<25),
+      reale(67313,1055324017LL<<22),-reale(16748,109351667LL<<23),
+      -reale(34832,1017554013LL<<22),reale(50577,16270159LL<<24),
+      -reale(32450,61276651LL<<22),reale(10213,501613231LL<<23),
+      -real(913358656441LL<<22),-real(0xcb30b375e9c0000LL),
+      reale(23933886,0x5a813dc916f5bLL),
       // C4[10], coeff of eps^12, polynomial in n of order 14
-      real(0x83f3fa8cLL<<20),-real(0x1374d9c49eLL<<20),
-      real(0xe49b68b678LL<<20),-real(0x5d5e50a4b72LL<<20),
-      reale(6402LL,0x71afd664LL<<20),reale(-19348LL,0xea14f2baLL<<20),
-      reale(42585LL,0xebe6545LL<<24),reale(-68667LL,0x703137e6LL<<20),
-      reale(79038LL,0xd1606a3cLL<<20),reale(-58931LL,0x700ae612LL<<20),
-      reale(17031LL,0xb2cb5228LL<<20),reale(18189LL,0x913f3eLL<<20),
-      reale(-27349LL,0x9d0f0614LL<<20),reale(16435LL,0xd526256aLL<<20),
-      reale(-4107LL,0x18224be0c0000LL),reale(0x16d33beLL,0x5a813dc916f5bLL),
+      real(553451171LL<<22),-real(41782403663LL<<21),real(122732484303LL<<23),
+      -real(0x2eaf28525b9LL<<21),reale(6402,476837273LL<<22),
+      -reale(19347,183862947LL<<21),reale(42585,247358789LL<<24),
+      -reale(68666,1206346765LL<<21),reale(79038,878189199LL<<22),
+      -reale(58930,1207602423LL<<21),reale(17031,374958661LL<<23),
+      reale(18189,4759455LL<<21),-reale(27348,414989947LL<<22),
+      reale(16435,1788023477LL<<21),-reale(4106,0xe7ddb41f40000LL),
+      reale(23933886,0x5a813dc916f5bLL),
       // C4[10], coeff of eps^11, polynomial in n of order 15
-      real(0xfd374LL<<20),real(0xec45e8LL<<20),real(0x273df7dcLL<<20),
-      -real(0x62a0474fLL<<24),real(0x4dcbe47944LL<<20),
-      -real(0x227b761e3c8LL<<20),reale(2600LL,0x153d35acLL<<20),
-      reale(-8793LL,0x286c976LL<<24),reale(22203LL,0x5eab8b14LL<<20),
-      reale(-42669LL,0xccca9a88LL<<20),reale(62615LL,0x2adb577cLL<<20),
-      reale(-69318LL,0x88b7c3bLL<<24),reale(56036LL,0xcf17f8e4LL<<20),
-      reale(-31066LL,0x7860b0d8LL<<20),reale(10475LL,0x95eb4d4cLL<<20),
-      -real(0x6470cd13038c0000LL),reale(0x16d33beLL,0x5a813dc916f5bLL),
+      real(259293LL<<22),real(1935549LL<<23),real(164593143LL<<22),
+      -real(1654671183LL<<24),real(83533307473LL<<22),
+      -real(296200453241LL<<23),reale(2600,89083243LL<<22),
+      -reale(8792,113023813LL<<25),reale(22203,397075141LL<<22),
+      -reale(42668,107392175LL<<23),reale(62615,179754463LL<<22),
+      -reale(69317,125076421LL<<24),reale(56036,868613689LL<<22),
+      -reale(31065,284420581LL<<23),reale(10475,628806483LL<<22),
+      -real(0x6470cd13038c0000LL),reale(23933886,0x5a813dc916f5bLL),
       // C4[10], coeff of eps^10, polynomial in n of order 16
-      real(133LL<<24),real(15675LL<<20),real(155078LL<<20),
-      real(0x255a91LL<<20),real(0x6998a3cLL<<20),-real(0x11c570399LL<<20),
-      real(0xf255cbcb2LL<<20),-real(0x753ac8aa43LL<<20),
-      real(0x262569ee428LL<<20),reale(-2315LL,0xcce58993LL<<20),
-      reale(6672LL,0x1ba60f9eLL<<20),reale(-14970LL,0x86e40ae9LL<<20),
-      reale(26346LL,0x45cace14LL<<20),reale(-36033LL,0x9904fcbfLL<<20),
-      reale(36664LL,0x8cb78e8aLL<<20),reale(-23571LL,0xeeae9215LL<<20),
-      reale(6696LL,0xabcf39720000LL),reale(0x16d33beLL,0x5a813dc916f5bLL),
+      real(133LL<<24),real(15675LL<<20),real(77539LL<<21),real(2448017LL<<20),
+      real(27681423LL<<22),-real(4770431897LL<<20),real(32525672025LL<<21),
+      -real(503497402947LL<<20),real(327672913029LL<<23),
+      -reale(2314,857372269LL<<20),reale(6672,231933903LL<<21),
+      -reale(14969,2031875351LL<<20),reale(26346,292729733LL<<22),
+      -reale(36032,1727726401LL<<20),reale(36664,1180419909LL<<21),
+      -reale(23570,290549227LL<<20),reale(6696,0xabcf39720000LL),
+      reale(23933886,0x5a813dc916f5bLL),
       // C4[11], coeff of eps^26, polynomial in n of order 0
-      real(4888LL<<20),real(0xe6baee73ea363LL),
+      real(611LL<<23),real(0xe6baee73ea363LL),
       // C4[11], coeff of eps^25, polynomial in n of order 1
-      -real(306388LL<<24),-real(0x30085eLL<<20),real(0x477bca00497fe9bfLL),
+      -real(76597LL<<26),-real(1573935LL<<21),real(0x477bca00497fe9bfLL),
       // C4[11], coeff of eps^24, polynomial in n of order 2
-      real(0xb66a2aLL<<28),-real(0x94166dLL<<28),real(0x1456e5bcLL<<20),
-      reale(54497LL,0x83837319e73d9LL),
+      real(5977365LL<<29),-real(9705069LL<<28),real(85309807LL<<22),
+      reale(54497,0x83837319e73d9LL),
       // C4[11], coeff of eps^23, polynomial in n of order 3
-      real(0x3dc8d3e3fcLL<<24),-real(0x852738cf8LL<<24),
-      -real(0x23d2c912cLL<<24),-real(0x200440db02LL<<20),
-      reale(0x18ffbb8LL,0x19fb43ab7aab9LL),
+      real(66340583679LL<<26),-real(4467880351LL<<27),-real(2404066379LL<<26),
+      -real(68755156353LL<<21),reale(26213304,0x19fb43ab7aab9LL),
       // C4[11], coeff of eps^22, polynomial in n of order 4
-      real(0x1eafb2d2LL<<32),real(0x6001f8fcLL<<28),real(0x26e8d367LL<<32),
-      -real(0x1850eab0cLL<<28),real(0x2ad9fbf9a8LL<<20),
-      reale(0x18ffbb8LL,0x19fb43ab7aab9LL),
+      real(257415529LL<<33),real(402685503LL<<30),real(652792679LL<<32),
+      -real(1631824579LL<<30),real(23005724469LL<<23),
+      reale(26213304,0x19fb43ab7aab9LL),
       // C4[11], coeff of eps^21, polynomial in n of order 5
-      -real(0x34c400805d8LL<<20),-real(0x67cc1b5366LL<<24),
-      real(0x57398ecb018LL<<20),-real(0xc95bb863LL<<24),
-      -real(0x22721e20f8LL<<20),-real(0x3de76ba4f240000LL),
-      reale(0x18ffbb8LL,0x19fb43ab7aab9LL),
+      -real(453253333179LL<<23),-real(222902987187LL<<25),
+      real(749255628291LL<<23),-real(3378231395LL<<24),
+      -real(18492933151LL<<23),-real(0xf79dae93c9LL<<18),
+      reale(26213304,0x19fb43ab7aab9LL),
       // C4[11], coeff of eps^20, polynomial in n of order 6
-      reale(4082LL,0x67f98f4LL<<24),reale(-3844LL,0x2c9ab0aLL<<24),
-      -real(0x159f6b3e48LL<<24),-real(0x5e777d4baLL<<24),
-      real(0x4a85b6d5fcLL<<24),-real(0x22657e61deLL<<24),
-      real(0x2c64fe303880000LL),reale(0x18ffbb8LL,0x19fb43ab7aab9LL),
+      reale(4082,27256381LL<<26),-reale(3843,110832251LL<<25),
+      -real(11608614857LL<<27),-real(12679113309LL<<25),
+      real(80017732991LL<<26),-real(73865834735LL<<25),
+      real(381345882225LL<<19),reale(26213304,0x19fb43ab7aab9LL),
       // C4[11], coeff of eps^19, polynomial in n of order 7
-      reale(8515LL,0x37f5b918LL<<20),reale(2727LL,0x3380253LL<<24),
-      real(0xb19d71edc8LL<<20),reale(-4155LL,0x995a0c2LL<<24),
-      real(0x66bdc071d78LL<<20),real(0x12a53914f1LL<<24),
-      real(0x167e4eca28LL<<20),-real(0x7d57ec14bd40000LL),
-      reale(0x18ffbb8LL,0x19fb43ab7aab9LL),
+      reale(8515,117356323LL<<23),reale(2727,54002259LL<<24),
+      real(95356337593LL<<23),-reale(4154,53817247LL<<25),
+      real(882540340143LL<<23),real(80081392881LL<<24),real(12076046661LL<<23),
+      -real(0x7d57ec14bd40000LL),reale(26213304,0x19fb43ab7aab9LL),
       // C4[11], coeff of eps^18, polynomial in n of order 8
-      reale(-12506LL,97541LL<<32),reale(-6195LL,0x2e1145LL<<28),
-      reale(12920LL,0x2b7254LL<<28),reale(-2329LL,577767LL<<28),
-      reale(-2122LL,0x282168LL<<28),-real(0x58b5939bfLL<<28),
-      reale(2380LL,0xeae3dcLL<<28),-real(0x30188e75dLL<<28),
-      real(0x230ec3334eLL<<20),reale(0x18ffbb8LL,0x19fb43ab7aab9LL),
+      -reale(12505,951035LL<<32),-reale(6194,13758139LL<<28),
+      reale(12920,711829LL<<30),-reale(2328,16199449LL<<28),
+      -reale(2121,1768403LL<<31),-real(23812716991LL<<28),
+      reale(2380,3848439LL<<30),-real(12910651229LL<<28),
+      real(75285764519LL<<21),reale(26213304,0x19fb43ab7aab9LL),
       // C4[11], coeff of eps^17, polynomial in n of order 9
-      reale(63004LL,0x820dc15LL<<24),reale(-23254LL,0x2b51348LL<<24),
-      reale(-10034LL,0x6d8993bLL<<24),reale(4968LL,0xd50d56LL<<24),
-      reale(9826LL,0xfc2da81LL<<24),reale(-8261LL,0x55baaa4LL<<24),
-      real(0x233dd63227LL<<24),real(0x37fd376f72LL<<24),
-      real(0x141eaf7a6dLL<<24),-real(0x115cb8e6aa880000LL),
-      reale(0x18ffbb8LL,0x19fb43ab7aab9LL),
+      reale(63004,136371221LL<<24),-reale(23253,27876759LL<<27),
+      -reale(10033,153577157LL<<24),reale(4968,6981291LL<<25),
+      reale(9826,264428161LL<<24),-reale(8260,44635479LL<<26),
+      real(151361303079LL<<24),real(120235734969LL<<25),
+      real(86414162541LL<<24),-real(0x22b971cd551LL<<19),
+      reale(26213304,0x19fb43ab7aab9LL),
       // C4[11], coeff of eps^16, polynomial in n of order 10
-      reale(-42752LL,0xfd09668LL<<24),reale(-21693LL,0x75aae5cLL<<24),
-      reale(62310LL,0xfec662LL<<28),reale(-46930LL,0xc9a1864LL<<24),
-      reale(7047LL,0xf651fd8LL<<24),reale(9444LL,0xbbaab2cLL<<24),
-      -real(0x1703b736fLL<<28),reale(-7301LL,0x7c7a434LL<<24),
-      reale(4777LL,0xce4e748LL<<24),-real(0x3caad8bf04LL<<24),
-      -real(0xa540e2085LL<<20),reale(0x18ffbb8LL,0x19fb43ab7aab9LL),
+      -reale(42751,388403LL<<27),-reale(21692,36263017LL<<26),
+      reale(62310,8348465LL<<29),-reale(46929,14252519LL<<26),
+      reale(7047,32285691LL<<27),reale(9444,49195723LL<<26),
+      -real(6177911663LL<<28),-reale(7300,34477811LL<<26),
+      reale(4777,27041001LL<<27),-real(65141092289LL<<26),
+      -real(44359884933LL<<20),reale(26213304,0x19fb43ab7aab9LL),
       // C4[11], coeff of eps^15, polynomial in n of order 11
-      reale(-54976LL,0xf8ad2dfLL<<24),reale(76586LL,0x4c1b29aLL<<24),
-      reale(-65944LL,0xd8907c5LL<<24),reale(16034LL,0xc1436c8LL<<24),
-      reale(40019LL,0x76688bLL<<24),reale(-57817LL,0x54999f6LL<<24),
-      reale(33374LL,0xea6cb71LL<<24),reale(-3539LL,0xfaa2c64LL<<24),
-      reale(-5248LL,0x50c1eb7LL<<24),real(0x2c6b73ee52LL<<24),
-      real(0x722433189dLL<<24),-real(0x2e4dc1cba3080000LL),
-      reale(0x18ffbb8LL,0x19fb43ab7aab9LL),
+      -reale(54975,7679265LL<<24),reale(76586,39901517LL<<25),
+      -reale(65943,41351227LL<<24),reale(16034,25331417LL<<27),
+      reale(40019,7760011LL<<24),-reale(57816,89862917LL<<25),
+      reale(33374,245812081LL<<24),-reale(3538,1406183LL<<26),
+      -reale(5247,183755081LL<<24),real(95390660393LL<<25),
+      real(490233600157LL<<24),-real(0x5c9b8397461LL<<19),
+      reale(26213304,0x19fb43ab7aab9LL),
       // C4[11], coeff of eps^14, polynomial in n of order 12
-      reale(-5608LL,0x991738LL<<28),reale(17587LL,0xf22611LL<<28),
-      reale(-40025LL,0xa10c4cLL<<28),reale(66142LL,0x876083LL<<28),
-      reale(-76303LL,954917LL<<32),reale(52531LL,0x8deb4dLL<<28),
-      reale(-2629LL,0x8e7914LL<<28),reale(-39201LL,0x38bf3fLL<<28),
-      reale(46365LL,0x54b068LL<<28),reale(-27150LL,0x55ed29LL<<28),
-      reale(7864LL,0x5e881cLL<<28),-real(0x1da92f225LL<<28),
-      -real(0xc0441aac22LL<<20),reale(0x18ffbb8LL,0x19fb43ab7aab9LL),
+      -reale(5607,843033LL<<31),reale(17587,15869457LL<<28),
+      -reale(40024,1555693LL<<30),reale(66142,8872067LL<<28),
+      -reale(76302,93659LL<<32),reale(52531,9300813LL<<28),
+      -reale(2628,1860027LL<<30),-reale(39200,13058241LL<<28),
+      reale(46365,693773LL<<31),-reale(27149,11145943LL<<28),
+      reale(7864,1548807LL<<30),-real(7962030629LL<<28),
+      -real(412888159761LL<<21),reale(26213304,0x19fb43ab7aab9LL),
       // C4[11], coeff of eps^13, polynomial in n of order 13
-      -real(0x4dd7751f98LL<<20),real(0x238aa1d5ceLL<<24),
-      reale(-2754LL,0xce58be58LL<<20),reale(9526LL,0xd688791LL<<24),
-      reale(-24464LL,0xdf73ed48LL<<20),reale(47309LL,0x7148c34LL<<24),
-      reale(-68505LL,0xbf6a8738LL<<20),reale(71563LL,0xf1b5657LL<<24),
-      reale(-47679LL,0xf11e628LL<<20),reale(8918LL,0xa5b789aLL<<24),
-      reale(19900LL,0x542c2418LL<<20),reale(-25293LL,0xbf6dd9dLL<<24),
-      reale(14565LL,0x9bc59b08LL<<20),reale(-3590LL,0x4e483233c0000LL),
-      reale(0x18ffbb8LL,0x19fb43ab7aab9LL),
+      -real(41790907379LL<<23),real(76324858599LL<<25),
+      -reale(2753,104130613LL<<23),reale(9526,224954257LL<<24),
+      -reale(24463,68256343LL<<23),reale(47309,29696781LL<<26),
+      -reale(68504,135442201LL<<23),reale(71563,253449815LL<<24),
+      -reale(47678,505267003LL<<23),reale(8918,86883405LL<<25),
+      reale(19900,176522371LL<<23),-reale(25292,67707491LL<<24),
+      reale(14565,326677345LL<<23),-reale(3589,0xb1b7cdcc40000LL),
+      reale(26213304,0x19fb43ab7aab9LL),
       // C4[11], coeff of eps^12, polynomial in n of order 14
-      -real(0xa2feacLL<<24),real(0x1c179372LL<<24),-real(0x1874d0578LL<<24),
-      real(0xc0be8a7beLL<<24),-real(0x3f9d6493c4LL<<24),
-      reale(3896LL,0x4997f2aLL<<24),reale(-11281LL,0x64c37bLL<<28),
-      reale(25274LL,0x3bbdef6LL<<24),reale(-44241LL,0xb75fe24LL<<24),
-      reale(60354LL,0xf508c62LL<<24),reale(-63153LL,0xc2460d8LL<<24),
-      reale(48923LL,0x7ed4caeLL<<24),reale(-26289LL,0xfd6410cLL<<24),
-      reale(8669LL,0x733e51aLL<<24),-real(0x51d72bd69a980000LL),
-      reale(0x18ffbb8LL,0x19fb43ab7aab9LL),
+      -real(2670507LL<<26),real(235653561LL<<25),-real(820617391LL<<27),
+      real(25869702111LL<<25),-real(68305888497LL<<26),
+      reale(3896,38584213LL<<25),-reale(11280,10173573LL<<28),
+      reale(25274,31321979LL<<25),-reale(44240,19038327LL<<26),
+      reale(60354,128468529LL<<25),-reale(63152,8090597LL<<27),
+      reale(48923,66496087LL<<25),-reale(26288,683965LL<<26),
+      reale(8669,60420749LL<<25),-real(0xa3ae57ad353LL<<19),
+      reale(26213304,0x19fb43ab7aab9LL),
       // C4[11], coeff of eps^11, polynomial in n of order 15
-      -real(31464LL<<20),-real(33649LL<<24),-real(0x1944cb8LL<<20),
-      real(0x4a592f6LL<<24),-real(0x459291388LL<<20),real(0x25287649dLL<<24),
-      -real(0xd6fc633d58LL<<20),real(0x39106c83a4LL<<24),
-      reale(-2978LL,0x49e187d8LL<<20),reale(7656LL,0xf8e0a2bLL<<24),
-      reale(-15740LL,0xab15ce08LL<<20),reale(25923LL,0x9aeb252LL<<24),
-      reale(-33769LL,0x17e1e738LL<<20),reale(33232LL,0xe46ee39LL<<24),
-      reale(-20952LL,0xd4296568LL<<20),reale(5892LL,0x84545b7ac0000LL),
-      reale(0x18ffbb8LL,0x19fb43ab7aab9LL),
+      -real(3933LL<<23),-real(33649LL<<24),-real(3312023LL<<23),
+      real(38979963LL<<25),-real(2334466673LL<<23),real(9974539421LL<<24),
+      -real(115419670443LL<<23),real(61272170729LL<<26),
+      -reale(2977,381931269LL<<23),reale(7656,260966955LL<<24),
+      -reale(15739,178079295LL<<23),reale(25923,81221929LL<<25),
+      -reale(33768,486785817LL<<23),reale(33232,239529529LL<<24),
+      -reale(20951,91935571LL<<23),reale(5892,8880483819LL<<18),
+      reale(26213304,0x19fb43ab7aab9LL),
       // C4[12], coeff of eps^26, polynomial in n of order 0
-      -real(2LL<<32),real(0x2f0618f20f09a7LL),
+      -real(1LL<<33),real(0x2f0618f20f09a7LL),
       // C4[12], coeff of eps^25, polynomial in n of order 1
       -real(62273LL<<28),real(123651LL<<24),real(0x19e65bbd524850fbLL),
       // C4[12], coeff of eps^24, polynomial in n of order 2
-      -real(0x59584b5LL<<28),-real(0x24710be8LL<<24),-real(0x294ee807LL<<24),
-      reale(0x217183LL,0xd5a68f81111b3LL),
+      -real(93684917LL<<28),-real(76423549LL<<27),-real(693037063LL<<24),
+      reale(2191747,0xd5a68f81111b3LL),
       // C4[12], coeff of eps^23, polynomial in n of order 3
-      real(0x12984317LL<<28),real(0xd1e58b72LL<<28),-real(0x747d5143LL<<28),
-      real(0xb73914e9LL<<24),reale(0x90ebe5LL,0xf32718849f75dLL),
+      real(311968535LL<<28),real(1760740793LL<<29),-real(1954369859LL<<28),
+      real(3073971433LL<<24),reale(9497573,0xf32718849f75dLL),
       // C4[12], coeff of eps^22, polynomial in n of order 4
-      -real(0x71f21ba04LL<<28),real(0x4a52d91cdLL<<28),real(0x3a8875feLL<<28),
-      -real(0x13186811LL<<28),-real(0x3e64cd5eLL<<28),
-      reale(0x1b2c3b1LL,0xd975498dde617LL),
+      -real(7646768769LL<<30),real(19951096269LL<<28),real(491010815LL<<29),
+      -real(320366609LL<<28),-real(523396783LL<<29),
+      reale(28492721,0xd975498dde617LL),
       // C4[12], coeff of eps^21, polynomial in n of order 5
-      reale(-3027LL,0xe45b0dLL<<28),-real(0x292135aecLL<<28),
-      -real(0xf7b99e85LL<<28),real(0x48a6e1d2aLL<<28),-real(0x1e0b679f7LL<<28),
-      real(0x2190668fdLL<<24),reale(0x1b2c3b1LL,0xd975498dde617LL),
+      -reale(3026,1811699LL<<28),-real(2760169147LL<<30),
+      -real(4156137093LL<<28),real(9751170709LL<<29),-real(8065022455LL<<28),
+      real(9009785085LL<<24),reale(28492721,0xd975498dde617LL),
       // C4[12], coeff of eps^20, polynomial in n of order 6
-      reale(3415LL,0xc912716LL<<24),real(0x45e58b8965LL<<24),
-      reale(-4037LL,0x3f84be4LL<<24),real(0x4b8d3c4323LL<<24),
-      real(0x15bac0b1b2LL<<24),real(0x3522c8ca1LL<<24),
-      -real(0x7a03567462LL<<20),reale(0x1b2c3b1LL,0xd975498dde617LL),
+      reale(3415,105419659LL<<25),real(300203870565LL<<24),
+      -reale(4036,50457863LL<<26),real(324492084003LL<<24),
+      real(46663751897LL<<25),real(14263553185LL<<24),
+      -real(262021003825LL<<21),reale(28492721,0xd975498dde617LL),
       // C4[12], coeff of eps^19, polynomial in n of order 7
-      reale(-9658LL,0xa4c7364LL<<24),reale(11274LL,0x6c5b0c8LL<<24),
-      -real(0x1f6e85a614LL<<24),-real(0x79d1375fdLL<<28),
-      -real(0x6b072a870cLL<<24),reale(2209LL,0x198a998LL<<24),
-      -real(0x285bc12c84LL<<24),real(0x163cbe2fecLL<<20),
-      reale(0x1b2c3b1LL,0xd975498dde617LL),
+      -reale(9657,23913255LL<<26),reale(11274,14202393LL<<27),
+      -real(33749559685LL<<26),-real(32700069373LL<<28),
+      -real(114920432067LL<<26),reale(2209,3347763LL<<27),
+      -real(43334519585LL<<26),real(23877094395LL<<22),
+      reale(28492721,0xd975498dde617LL),
       // C4[12], coeff of eps^18, polynomial in n of order 8
-      reale(-10358LL,0x7c48caLL<<28),reale(-12253LL,0x39b98ccLL<<24),
-      real(0x62ed8afd78LL<<24),reale(10573LL,0x9351d24LL<<24),
-      reale(-6815LL,0x900e65LL<<28),-real(0x61450ee84LL<<24),
-      real(0x3263d35f28LL<<24),real(0x16e96dd5d4LL<<24),
-      -real(0x10590be4b4LL<<24),reale(0x1b2c3b1LL,0xd975498dde617LL),
+      -reale(10357,4316059LL<<29),-reale(12252,51976653LL<<26),
+      real(53111513007LL<<27),reale(10573,38618953LL<<26),
+      -reale(6814,7336347LL<<28),-real(6527663009LL<<26),
+      real(27052895205LL<<27),real(24601392501LL<<26),-real(17553357101LL<<26),
+      reale(28492721,0xd975498dde617LL),
       // C4[12], coeff of eps^17, polynomial in n of order 9
-      reale(-37198LL,0xc2bcf24LL<<24),reale(60620LL,0xbda83aLL<<28),
-      reale(-35565LL,0x113931cLL<<24),real(0x64fe25038LL<<24),
-      reale(9080LL,0x9fe8194LL<<24),real(0x5138a8f5dLL<<28),
-      reale(-7185LL,0x3ef178cLL<<24),reale(4144LL,0x2d30168LL<<24),
-      -real(0x2f70b26dfcLL<<24),-real(0x15370842ccLL<<20),
-      reale(0x1b2c3b1LL,0xd975498dde617LL),
+      -reale(37197,16059447LL<<26),reale(60620,6214685LL<<29),
+      -reale(35564,62593849LL<<26),real(3388754439LL<<27),
+      reale(9080,41918565LL<<26),real(21802684253LL<<28),
+      -reale(7184,50608669LL<<26),reale(4144,5922861LL<<27),
+      -real(50938551167LL<<26),-real(22779400371LL<<22),
+      reale(28492721,0xd975498dde617LL),
       // C4[12], coeff of eps^16, polynomial in n of order 10
-      reale(72847LL,0x271a51cLL<<24),reale(-50731LL,0x7c7ae56LL<<24),
-      -real(0x44b35c4c5LL<<28),reale(46646LL,0x70a160aLL<<24),
-      reale(-52486LL,0x5f31e44LL<<24),reale(25457LL,0x9e6c03eLL<<24),
-      -real(0xd3d3e2228LL<<24),reale(-5016LL,0xcfe89f2LL<<24),
-      real(0xe92a0cb6cLL<<24),real(0x6fd8056026LL<<24),
-      -real(0x2a2c8f04c9cLL<<20),reale(0x1b2c3b1LL,0xd975498dde617LL),
+      reale(72847,10250567LL<<26),-reale(50730,68954325LL<<25),
+      -real(18441684165LL<<28),reale(46646,59050757LL<<25),
+      -reale(52485,42154095LL<<26),reale(25457,83058719LL<<25),
+      -real(7107757125LL<<27),-reale(5015,25213703LL<<25),
+      real(15647388379LL<<26),real(240182800403LL<<25),
+      -real(724544787239LL<<22),reale(28492721,0xd975498dde617LL),
       // C4[12], coeff of eps^15, polynomial in n of order 11
-      reale(23399LL,0xe6f798cLL<<24),reale(-46216LL,0x5234048LL<<24),
-      reale(67437LL,0x33caec4LL<<24),reale(-68613LL,0x20de4aLL<<28),
-      reale(38802LL,0xf902d7cLL<<24),reale(8195LL,341240LL<<24),
-      reale(-41127LL,0x66c3ab4LL<<24),reale(42002LL,0x30cc65LL<<28),
-      reale(-22752LL,0x6405b6cLL<<24),reale(6086LL,0x174ada8LL<<24),
-      -real(0xdc5682b5cLL<<24),-real(0xb3064a33acLL<<20),
-      reale(0x1b2c3b1LL,0xd975498dde617LL),
+      reale(23399,60546659LL<<26),-reale(46215,22779895LL<<27),
+      reale(67437,13577137LL<<26),-reale(68612,7311579LL<<29),
+      reale(38802,65276767LL<<26),reale(8195,42655LL<<27),
+      -reale(41126,40169811LL<<26),reale(42002,3198053LL<<28),
+      -reale(22751,40888613LL<<26),reale(6086,3052981LL<<27),
+      -real(14786628311LL<<26),-real(192226168043LL<<22),
+      reale(28492721,0xd975498dde617LL),
       // C4[12], coeff of eps^14, polynomial in n of order 12
-      real(0x4688633f7LL<<28),reale(-4402LL,0x8011c3cLL<<24),
-      reale(12915LL,0x73e9b88LL<<24),reale(-29095LL,0xd406fd4LL<<24),
-      reale(50530LL,0xd903faLL<<28),reale(-66730LL,0x7def36cLL<<24),
-      reale(63904LL,0x71b03b8LL<<24),reale(-38026LL,0x5c6c704LL<<24),
-      reale(2775LL,0xfbabfdLL<<28),reale(20705LL,0xcf7ea9cLL<<24),
-      reale(-23356LL,0x2de0be8LL<<24),reale(12999LL,0xf01fe34LL<<24),
-      reale(-3170LL,0x860a3fcLL<<24),reale(0x1b2c3b1LL,0xd975498dde617LL),
+      real(18933494775LL<<28),-reale(4401,33536241LL<<26),
+      reale(12915,15192945LL<<27),-reale(29094,11527179LL<<26),
+      reale(50530,7111165LL<<29),-reale(66729,34095909LL<<26),
+      reale(63904,14901367LL<<27),-reale(38025,42880575LL<<26),
+      reale(2775,16493565LL<<28),reale(20705,54393511LL<<26),
+      -reale(23355,27541123LL<<27),reale(12999,62947213LL<<26),
+      -reale(3169,31971073LL<<26),reale(28492721,0xd975498dde617LL),
       // C4[12], coeff of eps^13, polynomial in n of order 13
-      real(0x283beee4LL<<24),-real(0x15cef585LL<<28),real(0x7f93d56fcLL<<24),
-      -real(0x22159bbf18LL<<24),real(0x6f496a9d94LL<<24),
-      reale(-4556LL,0x84dbd2LL<<28),reale(9255LL,0xbbd2bacLL<<24),
-      reale(-14990LL,0xbdd5558LL<<24),reale(19228LL,0x8e2a44LL<<24),
-      reale(-19176LL,0xa51429LL<<28),reale(14321LL,0xf73025cLL<<24),
-      reale(-7492LL,0x82a3dc8LL<<24),reale(2423LL,0xb79dcf4LL<<24),
-      -real(0x1693a2298bcLL<<20),reale(0x90ebe5LL,0xf32718849f75dLL),
+      real(168754105LL<<26),-real(365884805LL<<28),real(8561579455LL<<26),
+      -real(18298927075LL<<27),real(119493273445LL<<26),
+      -reale(4555,4035095LL<<29),reale(9255,49236715LL<<26),
+      -reale(14989,8672597LL<<27),reale(19228,2329233LL<<26),
+      -reale(19175,5958615LL<<28),reale(14321,64798871LL<<26),
+      -reale(7491,16431175LL<<27),reale(2423,48133949LL<<26),
+      -real(387864634927LL<<22),reale(9497573,0xf32718849f75dLL),
       // C4[12], coeff of eps^12, polynomial in n of order 14
-      real(397670LL<<24),-real(0x135e647LL<<24),real(0x13bdbefcLL<<24),
-      -real(0xb8948681LL<<24),real(0x49699e392LL<<24),
-      -real(0x1590a013fbLL<<24),real(0x4e6b0048a8LL<<24),
-      reale(-3632LL,0xa5068cbLL<<24),reale(8507LL,0xbf327beLL<<24),
-      reale(-16265LL,0x3097f51LL<<24),reale(25338LL,0xdcb7a54LL<<24),
-      reale(-31674LL,0x6c1a717LL<<24),reale(30296LL,0x77349eaLL<<24),
-      reale(-18784LL,0x30f8f9dLL<<24),reale(5237LL,0xcaf5a6a6LL<<20),
-      reale(0x1b2c3b1LL,0xd975498dde617LL),
+      real(198835LL<<25),-real(20309575LL<<24),real(82800575LL<<26),
+      -real(3096741505LL<<24),real(9853268425LL<<25),-real(92620723195LL<<24),
+      real(42100328725LL<<27),-reale(3631,95393589LL<<24),
+      reale(8507,100242399LL<<25),-reale(16264,217481391LL<<24),
+      reale(25338,57859733LL<<26),-reale(31673,155080937LL<<24),
+      reale(30296,62498037LL<<25),-reale(18783,217084003LL<<24),
+      reale(5237,1702548307LL<<21),reale(28492721,0xd975498dde617LL),
       // C4[13], coeff of eps^26, polynomial in n of order 0
-      real(166LL<<24),real(0xb952c68e4fbe9LL),
+      real(83LL<<25),real(0xb952c68e4fbe9LL),
       // C4[13], coeff of eps^25, polynomial in n of order 1
-      -real(71903LL<<28),-real(0x1ab3b9LL<<24),reale(5818LL,0x23b391cd899edLL),
+      -real(71903LL<<28),-real(1749945LL<<24),reale(5818,0x23b391cd899edLL),
       // C4[13], coeff of eps^24, polynomial in n of order 2
-      real(0x101ed8dLL<<32),-real(0x80a64a8LL<<28),real(0xb4b7414LL<<24),
-      reale(789029LL,0x386f296be7703LL),
+      real(16903565LL<<32),-real(16862357LL<<31),real(47373573LL<<26),
+      reale(789029,0x386f296be7703LL),
       // C4[13], coeff of eps^23, polynomial in n of order 3
-      real(0x3dee529e7LL<<28),real(0x6cec7402LL<<28),-real(0x473d793LL<<28),
-      -real(0x3e1be54e5LL<<24),reale(0x1d58babLL,0x98ef4f7042175LL),
+      real(16624462311LL<<28),real(913717761LL<<29),-real(74700691LL<<28),
+      -real(16672249061LL<<24),reale(30772139,0x98ef4f7042175LL),
       // C4[13], coeff of eps^22, polynomial in n of order 4
-      -real(0x343e549fLL<<32),-real(0x18a69b51cLL<<28),real(0x460d48248LL<<28),
-      -real(0x1a3f4f9f4LL<<28),real(0x19281ba96LL<<24),
-      reale(0x1d58babLL,0x98ef4f7042175LL),
+      -real(876500127LL<<32),-real(1654287687LL<<30),real(2350551113LL<<31),
+      -real(1761427069LL<<30),real(3376471371LL<<25),
+      reale(30772139,0x98ef4f7042175LL),
       // C4[13], coeff of eps^21, polynomial in n of order 5
-      real(0x79a6c5ac7LL<<28),reale(-3802LL,0xfd945cLL<<28),
-      real(0x346436151LL<<28),real(0x16fdc2aceLL<<28),real(0x4f28edfbLL<<28),
-      -real(0x75fcc3c53LL<<24),reale(0x1d58babLL,0x98ef4f7042175LL),
+      real(32655563463LL<<28),-reale(3801,39657LL<<30),real(14063722833LL<<28),
+      real(3085833575LL<<29),real(1328082427LL<<28),-real(31671991379LL<<24),
+      reale(30772139,0x98ef4f7042175LL),
       // C4[13], coeff of eps^20, polynomial in n of order 6
-      reale(9254LL,696682LL<<32),real(0x352756c5LL<<32),
-      -real(0x65e53404LL<<32),-real(0x788cc21dLL<<32),real(0x7f33e94eLL<<32),
-      -real(0x21eb1cefLL<<32),real(0xcd29b9b8LL<<24),
-      reale(0x1d58babLL,0x98ef4f7042175LL),
+      reale(9254,348341LL<<33),real(891770565LL<<32),-real(427379969LL<<34),
+      -real(2022490653LL<<32),real(1067054247LL<<33),-real(569056495LL<<32),
+      real(430257975LL<<27),reale(30772139,0x98ef4f7042175LL),
       // C4[13], coeff of eps^19, polynomial in n of order 7
-      reale(-12156LL,0xce6fa6cLL<<24),-real(0x5e07316be8LL<<24),
-      reale(10690LL,0x8038384LL<<24),reale(-5461LL,0x41c7d1LL<<28),
-      -real(0x2348597ae4LL<<24),real(0x2bb84de008LL<<24),
-      real(0x18e3fd0234LL<<24),-real(0xf5e5d02854LL<<20),
-      reale(0x1d58babLL,0x98ef4f7042175LL),
+      -reale(12155,12992869LL<<26),-real(50480950653LL<<27),
+      reale(10690,33612001LL<<26),-reale(5460,12466223LL<<28),
+      -real(37884419769LL<<26),real(23471963137LL<<27),real(26726056077LL<<26),
+      -real(264030652949LL<<22),reale(30772139,0x98ef4f7042175LL),
       // C4[13], coeff of eps^18, polynomial in n of order 8
-      reale(55507LL,0xcfc518LL<<28),reale(-25285LL,0x16861fLL<<28),
-      reale(-4553LL,0x2efce2LL<<28),reale(8014LL,0xba4bfdLL<<28),
-      reale(2646LL,0x44360cLL<<28),reale(-6925LL,0x6f25abLL<<28),
-      reale(3590LL,0x29c576LL<<28),-real(0x251e627f7LL<<28),
-      -real(0x1c00154478LL<<20),reale(0x1d58babLL,0x98ef4f7042175LL),
+      reale(55507,1702051LL<<31),-reale(25284,15301089LL<<28),
+      -reale(4552,6848911LL<<29),reale(8014,12209149LL<<28),
+      reale(2646,1117571LL<<30),-reale(6924,9493077LL<<28),
+      reale(3590,1368763LL<<29),-real(9963972599LL<<28),
+      -real(15032559759LL<<23),reale(30772139,0x98ef4f7042175LL),
       // C4[13], coeff of eps^17, polynomial in n of order 9
-      reale(-35541LL,0x7282c8cLL<<24),reale(-14633LL,0xccc30eLL<<28),
-      reale(49583LL,0x128b834LL<<24),reale(-46374LL,0xdd8a28LL<<24),
-      reale(18858LL,0x355fe5cLL<<24),real(0x7f3bc48c7LL<<28),
-      reale(-4604LL,0xc55c04LL<<24),-real(0x98d22ab48LL<<24),
-      real(0x6c7ad32e2cLL<<24),-real(0x268b90f95ccLL<<20),
-      reale(0x1d58babLL,0x98ef4f7042175LL),
+      -reale(35540,37090525LL<<26),-reale(14632,1678969LL<<29),
+      reale(49583,4861453LL<<26),-reale(46373,31739579LL<<27),
+      reale(18858,13991831LL<<26),real(34153973959LL<<28),
+      -reale(4603,63875327LL<<26),-real(5127820649LL<<27),
+      real(116479282059LL<<26),-real(662201165171LL<<22),
+      reale(30772139,0x98ef4f7042175LL),
       // C4[13], coeff of eps^16, polynomial in n of order 10
-      reale(-50762LL,0x475c7cLL<<28),reale(66355LL,0x870afaLL<<28),
-      reale(-59859LL,723819LL<<32),reale(26575LL,0x21ae26LL<<28),
-      reale(16255LL,0x1d3fe4LL<<28),reale(-41403LL,0x212a72LL<<28),
-      reale(37768LL,0x572c58LL<<28),reale(-19111LL,0x7dd41eLL<<28),
-      reale(4727LL,0x6ab04cLL<<28),-real(0x2fa40096LL<<28),
-      -real(0xa540e2085LL<<24),reale(0x1d58babLL,0x98ef4f7042175LL),
+      -reale(50761,3025121LL<<30),reale(66355,4425085LL<<29),
+      -reale(59858,324757LL<<32),reale(26575,1103635LL<<29),
+      reale(16255,479225LL<<30),-reale(41402,7301831LL<<29),
+      reale(37768,714123LL<<31),-reale(19110,4265457LL<<29),
+      reale(4727,1747987LL<<30),-real(399638603LL<<29),
+      -real(44359884933LL<<24),reale(30772139,0x98ef4f7042175LL),
       // C4[13], coeff of eps^15, polynomial in n of order 11
-      reale(-6367LL,0x25f6504LL<<24),reale(16360LL,0x4dc3558LL<<24),
-      reale(-33061LL,0x4ecdf6cLL<<24),reale(52401LL,0x66e3beLL<<28),
-      reale(-63841LL,0x71a1354LL<<24),reale(56445LL,0xe17ae68LL<<24),
-      reale(-29838LL,0x86065bcLL<<24),-real(0x7403de4e1LL<<28),
-      reale(20917LL,0x71e3ba4LL<<24),reale(-21570LL,0xb3f6b78LL<<24),
-      reale(11677LL,0xe90fa0cLL<<24),reale(-2824LL,0xeb954754LL<<20),
-      reale(0x1d58babLL,0x98ef4f7042175LL),
+      -reale(6366,57157311LL<<26),reale(16360,10192555LL<<27),
+      -reale(33060,46450725LL<<26),reale(52401,3371487LL<<29),
+      -reale(63840,37321515LL<<26),reale(56445,29554125LL<<27),
+      -reale(29837,31975057LL<<26),-real(31142569185LL<<28),
+      reale(20917,29855465LL<<26),-reale(21569,9966225LL<<27),
+      reale(11677,61095555LL<<26),-reale(2823,85634603LL<<22),
+      reale(30772139,0x98ef4f7042175LL),
       // C4[13], coeff of eps^14, polynomial in n of order 12
-      -real(0x8b26687cLL<<28),real(0x290fd9f1bLL<<28),
-      reale(-2388LL,0x36721eLL<<28),reale(6865LL,0x9baec9LL<<28),
-      reale(-15870LL,0x905358LL<<28),reale(29710LL,0x8c2607LL<<28),
-      reale(-45044LL,486674LL<<28),reale(54812LL,0x6d26b5LL<<28),
-      reale(-52442LL,0xa7f12cLL<<28),reale(37945LL,0xc3d2b3LL<<28),
-      reale(-19390LL,0x431186LL<<28),reale(6169LL,0x764be1LL<<28),
-      -real(0x38ce4db2db8LL<<20),reale(0x1d58babLL,0x98ef4f7042175LL),
+      -real(583637535LL<<30),real(11022475035LL<<28),
+      -reale(2387,6604529LL<<29),reale(6865,10202825LL<<28),
+      -reale(15869,914837LL<<31),reale(29710,9184775LL<<28),
+      -reale(45043,8145271LL<<29),reale(54812,7153333LL<<28),
+      -reale(52441,1442741LL<<30),reale(37945,12833459LL<<28),
+      -reale(19389,6190909LL<<29),reale(6169,7752673LL<<28),
+      -real(487958734263LL<<23),reale(30772139,0x98ef4f7042175LL),
       // C4[13], coeff of eps^13, polynomial in n of order 13
-      -real(0x58be73cLL<<24),real(0x38517abLL<<28),-real(0x186e02be4LL<<24),
-      real(0x7dd9a1868LL<<24),-real(0x1f88b6950cLL<<24),
-      real(0x6557140f2LL<<28),reale(-4257LL,0xb6b584cLL<<24),
-      reale(9227LL,0xea319d8LL<<24),reale(-16595LL,0xf151724LL<<24),
-      reale(24654LL,470841LL<<28),reale(-29746LL,0x611227cLL<<24),
-      reale(27762LL,0x9455748LL<<24),reale(-16967LL,0xfaaf554LL<<24),
-      reale(4695LL,0xf3c1c18cLL<<20),reale(0x1d58babLL,0x98ef4f7042175LL),
+      -real(23263695LL<<26),real(59053995LL<<28),-real(1639451385LL<<26),
+      real(4222829325LL<<27),-real(33859413315LL<<26),real(13601644665LL<<29),
+      -reale(4256,19212781LL<<26),reale(9227,30696251LL<<27),
+      -reale(16594,3848759LL<<26),reale(24654,470841LL<<28),
+      -reale(29745,41662305LL<<26),reale(27762,19442409LL<<27),
+      -reale(16966,1393323LL<<26),reale(4695,1022390371LL<<22),
+      reale(30772139,0x98ef4f7042175LL),
       // C4[14], coeff of eps^26, polynomial in n of order 0
-      -real(27124LL<<24),real(0x5fa345ccc643905LL),
+      -real(6781LL<<26),real(0x5fa345ccc643905LL),
       // C4[14], coeff of eps^25, polynomial in n of order 1
-      -real(46952LL<<28),real(58824LL<<24),real(0x148e6926290dbdd9LL),
+      -real(5869LL<<31),real(7353LL<<27),real(0x148e6926290dbdd9LL),
       // C4[14], coeff of eps^24, polynomial in n of order 2
-      real(0x8f014108LL<<28),real(0x90ae184LL<<28),-real(0x3d486a848LL<<24),
-      reale(0x1f853a5LL,0x58695552a5cd3LL),
+      real(299903009LL<<31),real(37927009LL<<30),-real(2056312073LL<<27),
+      reale(33051557,0x58695552a5cd3LL),
       // C4[14], coeff of eps^23, polynomial in n of order 3
-      -real(0xaf809838LL<<28),real(0x16526bf3LL<<32),-real(0x7a5a5568LL<<28),
-      real(0x632768c8LL<<24),reale(0xa81be1LL,0xc8231c70e1ef1LL),
+      -real(368055047LL<<31),real(374500339LL<<32),-real(256592557LL<<31),
+      real(207940889LL<<27),reale(11017185,0xc8231c70e1ef1LL),
       // C4[14], coeff of eps^22, polynomial in n of order 4
-      reale(-3491LL,0x840908LL<<28),real(0x21172cd46LL<<28),
-      real(0x16feb6884LL<<28),real(0x64d1f5c2LL<<28),-real(0x7195fe17cLL<<24),
-      reale(0x1f853a5LL,0x58695552a5cd3LL),
+      -reale(3490,1015519LL<<31),real(4441335459LL<<29),real(1543166497LL<<30),
+      real(845740769LL<<29),-real(7622621279LL<<26),
+      reale(33051557,0x58695552a5cd3LL),
       // C4[14], coeff of eps^21, polynomial in n of order 5
-      real(0x6f9dc457LL<<32),-real(0x4d771554LL<<32),
-      reale(-2077LL,162049LL<<32),real(0x7498ad56LL<<32),
-      -real(0x1c8c8a55LL<<32),real(0x5e23549LL<<28),
-      reale(0x1f853a5LL,0x58695552a5cd3LL),
+      real(1872610391LL<<32),-real(324912469LL<<34),-reale(2076,886527LL<<32),
+      real(978081451LL<<33),-real(478972501LL<<32),real(98710857LL<<28),
+      reale(33051557,0x58695552a5cd3LL),
       // C4[14], coeff of eps^20, polynomial in n of order 6
-      reale(-4076LL,862583LL<<32),reale(10359LL,0x71ed88LL<<28),
-      reale(-4246LL,570106LL<<32),-real(0x37200de48LL<<28),
-      real(0x24bde07dLL<<32),real(0x1a398c5e8LL<<28),-real(0xe70c22fdLL<<28),
-      reale(0x1f853a5LL,0x58695552a5cd3LL),
+      -reale(4075,185993LL<<32),reale(10359,933297LL<<31),
+      -reale(4245,239235LL<<33),-real(1849695177LL<<31),real(616423549LL<<32),
+      real(879958205LL<<31),-real(3876332285LL<<28),
+      reale(33051557,0x58695552a5cd3LL),
       // C4[14], coeff of eps^19, polynomial in n of order 7
-      reale(-16508LL,9905LL<<32),reale(-7427LL,479402LL<<32),
-      reale(6609LL,461219LL<<32),reale(3685LL,139036LL<<32),
-      reale(-6577LL,261781LL<<32),reale(3109LL,382350LL<<32),
-      -real(0x1d03ce79LL<<32),-real(0x200b2093LL<<28),
-      reale(0x1f853a5LL,0x58695552a5cd3LL),
+      -reale(16507,1038671LL<<32),-reale(7426,284587LL<<33),
+      reale(6609,461219LL<<32),reale(3685,34759LL<<34),
+      -reale(6576,786795LL<<32),reale(3109,191175LL<<33),
+      -real(486788729LL<<32),-real(537600147LL<<28),
+      reale(33051557,0x58695552a5cd3LL),
       // C4[14], coeff of eps^18, polynomial in n of order 8
-      reale(-24789LL,0x83cf4cLL<<28),reale(49876LL,0x7a32c28LL<<24),
-      reale(-40131LL,0x62c079LL<<28),reale(13469LL,0x2232af8LL<<24),
-      reale(3498LL,0x98bfa6LL<<28),reale(-4112LL,0x4c9f9c8LL<<24),
-      -real(0x1cbd94d2dLL<<28),real(0x68817a7898LL<<24),
-      -real(0x2359e35b9dLL<<24),reale(0x1f853a5LL,0x58695552a5cd3LL),
+      -reale(24788,2034733LL<<30),reale(49876,16016773LL<<27),
+      -reale(40130,10305415LL<<28),reale(13469,4482399LL<<27),
+      reale(3498,5005267LL<<29),-reale(4111,23511239LL<<27),
+      -real(7714983213LL<<28),real(56106110739LL<<27),
+      -real(151831927709LL<<24),reale(33051557,0x58695552a5cd3LL),
       // C4[14], coeff of eps^17, polynomial in n of order 9
-      reale(63443LL,0x6de27aLL<<28),reale(-50758LL,552373LL<<32),
-      reale(16003LL,0x826826LL<<28),reale(22072LL,208508LL<<28),
-      reale(-40596LL,0x6563d2LL<<28),reale(33806LL,0x7a9da8LL<<28),
-      reale(-16096LL,0xcd217eLL<<28),reale(3680LL,0x3774d4LL<<28),
-      real(0x45a0ed2aLL<<28),-real(0x97dac1de2LL<<24),
-      reale(0x1f853a5LL,0x58695552a5cd3LL),
+      reale(63443,3600701LL<<29),-reale(50757,496203LL<<32),
+      reale(16003,4273171LL<<29),reale(22072,52127LL<<30),
+      -reale(40595,5066263LL<<29),reale(33806,1004469LL<<31),
+      -reale(16095,1666881LL<<29),reale(3680,908597LL<<30),
+      real(584087189LL<<29),-real(20381568753LL<<25),
+      reale(33051557,0x58695552a5cd3LL),
       // C4[14], coeff of eps^16, polynomial in n of order 10
-      reale(19689LL,0x79235aLL<<28),reale(-36283LL,0x3a1c11LL<<28),
-      reale(53123LL,640072LL<<28),reale(-60235LL,0xc6787fLL<<28),
-      reale(49410LL,0x4cf536LL<<28),reale(-22944LL,0xc02aedLL<<28),
-      reale(-5332LL,0x64d224LL<<28),reale(20742LL,0x947f5bLL<<28),
-      reale(-19940LL,0x8ff712LL<<28),reale(10552LL,0x6681c9LL<<28),
-      reale(-2534LL,0x1d20d5eLL<<24),reale(0x1f853a5LL,0x58695552a5cd3LL),
+      reale(19689,3969453LL<<29),-reale(36282,12968943LL<<28),
+      reale(53123,80009LL<<31),-reale(60234,3770241LL<<28),
+      reale(49410,2521755LL<<29),-reale(22943,4183315LL<<28),
+      -reale(5331,2542455LL<<30),reale(20742,9731931LL<<28),
+      -reale(19939,3671159LL<<29),reale(10552,6717897LL<<28),
+      -reale(2533,118946129LL<<25),reale(33051557,0x58695552a5cd3LL),
       // C4[14], coeff of eps^15, polynomial in n of order 11
-      real(0x3f93bd16eLL<<28),reale(-3247LL,0xcc82e4LL<<28),
-      reale(8406LL,0x10355aLL<<28),reale(-17843LL,401573LL<<32),
-      reale(31156LL,0xe11346LL<<28),reale(-44631LL,0xd0e1bcLL<<28),
-      reale(51879LL,0x441732LL<<28),reale(-47871LL,0x79b528LL<<28),
-      reale(33689LL,0x41ed1eLL<<28),reale(-16865LL,0x373094LL<<28),
-      reale(5288LL,0x1c410aLL<<28),-real(0x3032ec97c2LL<<24),
-      reale(0x1f853a5LL,0x58695552a5cd3LL),
+      real(8533174455LL<<29),-reale(3246,843591LL<<30),
+      reale(8406,531117LL<<29),-reale(17842,647003LL<<32),
+      reale(31156,7375267LL<<29),-reale(44630,771985LL<<30),
+      reale(51879,2231193LL<<29),-reale(47870,1100123LL<<31),
+      reale(33689,2160271LL<<29),-reale(16864,3290075LL<<30),
+      reale(5288,925829LL<<29),-real(103506398177LL<<25),
+      reale(33051557,0x58695552a5cd3LL),
       // C4[14], coeff of eps^14, polynomial in n of order 12
-      real(0x7f43c22LL<<28),-real(0x2c8eafab8LL<<24),real(0xc32b2bc7LL<<28),
-      -real(0x2b1186d468LL<<24),real(0x7d0edcd6cLL<<28),
-      reale(-4841LL,0x847e1e8LL<<24),reale(9826LL,0x8b1711LL<<28),
-      reale(-16768LL,0x7c50838LL<<24),reale(23911LL,0xeefeb6LL<<28),
-      reale(-27977LL,0x9a7e88LL<<24),reale(25559LL,0x333a5bLL<<28),
-      reale(-15424LL,0x58424d8LL<<24),reale(4241LL,0x81542abLL<<24),
-      reale(0x1f853a5LL,0x58695552a5cd3LL),
+      real(66723345LL<<29),-real(1495097175LL<<27),real(3274386375LL<<28),
+      -real(23122205325LL<<27),real(8392504155LL<<30),
+      -reale(4840,16188355LL<<27),reale(9826,9115409LL<<28),
+      -reale(16767,17260281LL<<27),reale(23911,7831387LL<<29),
+      -reale(27976,32288815LL<<27),reale(25559,3357275LL<<28),
+      -reale(15423,21986149LL<<27),reale(4241,135611051LL<<24),
+      reale(33051557,0x58695552a5cd3LL),
       // C4[15], coeff of eps^26, polynomial in n of order 0
-      real(284LL<<28),real(0x2213ecbbb96785dLL),
+      real(71LL<<30),real(0x2213ecbbb96785dLL),
       // C4[15], coeff of eps^25, polynomial in n of order 1
-      real(27196LL<<32),-real(0x12d3b78LL<<24),
-      reale(43244LL,0xc47e8e0e2a501LL),
+      real(6799LL<<34),-real(2467695LL<<27),reale(43244,0xc47e8e0e2a501LL),
       // C4[15], coeff of eps^24, polynomial in n of order 2
-      real(0x358bd2LL<<36),-real(0x10e5a9LL<<36),real(0xb51281LL<<28),
-      reale(0x1c5fc5LL,0x141dc611b72bLL),
+      real(1754601LL<<37),-real(1107369LL<<36),real(11866753LL<<28),
+      reale(1859525,0x141dc611b72bLL),
       // C4[15], coeff of eps^23, polynomial in n of order 3
-      real(0x114ce0c4LL<<32),real(0x1627a278LL<<32),real(0x768a96cLL<<32),
-      -real(0x6d0584bb8LL<<24),reale(0x21b1b9fLL,0x17e35b3509831LL),
+      real(72562737LL<<34),real(46462031LL<<35),real(31074907LL<<34),
+      -real(3658156407LL<<27),reale(35330975,0x17e35b3509831LL),
       // C4[15], coeff of eps^22, polynomial in n of order 4
-      -real(0x339e3ecLL<<36),reale(-2168LL,51155LL<<36),real(0x6a7c3eaLL<<36),
-      -real(0x180fd6fLL<<36),real(0xc32b44LL<<28),
-      reale(0x21b1b9fLL,0x17e35b3509831LL),
+      -real(13531387LL<<38),-reale(2167,14381LL<<36),real(55828981LL<<37),
+      -real(25230703LL<<36),real(3197649LL<<30),
+      reale(35330975,0x17e35b3509831LL),
       // C4[15], coeff of eps^21, polynomial in n of order 5
-      reale(9732LL,17262LL<<36),reale(-3186LL,36552LL<<36),
-      -real(0x43dd4feLL<<36),real(0x1de7dc4LL<<36),real(0x1b0dff6LL<<36),
-      -real(0xd920f5edLL<<28),reale(0x21b1b9fLL,0x17e35b3509831LL),
+      reale(9732,8631LL<<37),-reale(3185,3623LL<<39),-real(35580543LL<<37),
+      real(7839601LL<<38),real(14184443LL<<37),-real(3642815981LL<<28),
+      reale(35330975,0x17e35b3509831LL),
       // C4[15], coeff of eps^20, polynomial in n of order 6
-      reale(-8974LL,45592LL<<36),reale(5093LL,1677LL<<40),
-      reale(4452LL,53LL<<40),reale(-6182LL,2471LL<<40),
-      reale(2693LL,57096LL<<36),-real(0x169da1LL<<40),-real(0x223ddc2aLL<<28),
-      reale(0x21b1b9fLL,0x17e35b3509831LL),
+      -reale(8973,2493LL<<39),reale(5093,1677LL<<40),reale(4452,53LL<<40),
+      -reale(6181,1625LL<<40),reale(2693,7137LL<<39),-real(1482145LL<<40),
+      -real(287239701LL<<29),reale(35330975,0x17e35b3509831LL),
       // C4[15], coeff of eps^19, polynomial in n of order 7
-      reale(48363LL,42681LL<<36),reale(-34139LL,63194LL<<36),
-      reale(9135LL,63227LL<<36),reale(4396LL,51388LL<<36),
-      reale(-3597LL,31869LL<<36),-real(0x2bcd262LL<<36),real(0x64396bfLL<<36),
-      -real(0x2088431a1LL<<28),reale(0x21b1b9fLL,0x17e35b3509831LL),
+      reale(48363,42681LL<<36),-reale(34138,1171LL<<37),
+      reale(9135,63227LL<<36),reale(4396,12847LL<<38),-reale(3596,33667LL<<36),
+      -real(22964529LL<<37),real(105092799LL<<36),-real(8732815777LL<<28),
+      reale(35330975,0x17e35b3509831LL),
       // C4[15], coeff of eps^18, polynomial in n of order 8
-      reale(-41807LL,35192LL<<36),reale(7070LL,18565LL<<36),
-      reale(26107LL,55418LL<<36),reale(-39104LL,55423LL<<36),
-      reale(30179LL,444LL<<36),reale(-13594LL,22617LL<<36),
-      reale(2866LL,40062LL<<36),real(0x94bb53LL<<36),-real(0x8b41da54LL<<28),
-      reale(0x21b1b9fLL,0x17e35b3509831LL),
+      -reale(41806,3793LL<<39),reale(7070,18565LL<<36),
+      reale(26107,27709LL<<37),-reale(39103,10113LL<<36),
+      reale(30179,111LL<<38),-reale(13593,42919LL<<36),reale(2866,20031LL<<37),
+      real(9747283LL<<36),-real(584087189LL<<30),
+      reale(35330975,0x17e35b3509831LL),
       // C4[15], coeff of eps^17, polynomial in n of order 9
-      reale(-38752LL,80137LL<<32),reale(52907LL,0xfc9e8LL<<32),
-      reale(-56214LL,785799LL<<32),reale(42911LL,952654LL<<32),
-      reale(-17167LL,10533LL<<32),reale(-7921LL,806388LL<<32),
-      reale(20320LL,95267LL<<32),reale(-18462LL,706074LL<<32),
-      reale(9586LL,798401LL<<32),reale(-2290LL,0x45a3d6aLL<<24),
-      reale(0x21b1b9fLL,0x17e35b3509831LL),
+      -reale(38751,968439LL<<32),reale(52907,129341LL<<35),
+      -reale(56213,262777LL<<32),reale(42911,476327LL<<33),
+      -reale(17166,1038043LL<<32),-reale(7920,60547LL<<34),
+      reale(20320,95267LL<<32),-reale(18461,171251LL<<33),
+      reale(9586,798401LL<<32),-reale(2289,97706315LL<<25),
+      reale(35330975,0x17e35b3509831LL),
       // C4[15], coeff of eps^16, polynomial in n of order 10
-      -real(0x571bf678LL<<32),reale(3304LL,556556LL<<32),
-      reale(-6522LL,32202LL<<36),reale(10722LL,907188LL<<32),
-      reale(-14619LL,139704LL<<32),reale(16325LL,39196LL<<32),
-      reale(-14591LL,8133LL<<36),reale(10019LL,388548LL<<32),
-      reale(-4926LL,724968LL<<32),real(0x5f48012cLL<<32),
-      -real(0xdc5682b5cLL<<24),reale(0xb3b3dfLL,0xb2a11e67032bbLL),
+      -real(182681295LL<<35),reale(3304,139139LL<<34),-reale(6521,16667LL<<37),
+      reale(10722,226797LL<<34),-reale(14618,113609LL<<35),
+      reale(16325,9799LL<<34),-reale(14590,57403LL<<36),
+      reale(10019,97137LL<<34),-reale(4925,40451LL<<35),real(399638603LL<<34),
+      -real(14786628311LL<<26),reale(11776991,0xb2a11e67032bbLL),
       // C4[15], coeff of eps^15, polynomial in n of order 11
-      -real(0x490f31dLL<<32),real(0x118ff5d2LL<<32),-real(0x37d9274fLL<<32),
-      reale(2382LL,900648LL<<32),reale(-5378LL,933983LL<<32),
-      reale(10315LL,284030LL<<32),reale(-16819LL,653869LL<<32),
-      reale(23142LL,90132LL<<32),reale(-26357LL,771163LL<<32),
-      reale(23629LL,791082LL<<32),reale(-14102LL,390441LL<<32),
-      reale(3855LL,0xe9ef6caLL<<24),reale(0x21b1b9fLL,0x17e35b3509831LL),
+      -real(76608285LL<<32),real(147323625LL<<33),-real(936978255LL<<32),
+      reale(2382,112581LL<<35),-reale(5377,114593LL<<32),
+      reale(10315,142015LL<<33),-reale(16818,394707LL<<32),
+      reale(23142,22533LL<<34),-reale(26356,277413LL<<32),
+      reale(23629,395541LL<<33),-reale(14101,658135LL<<32),
+      reale(3855,122649445LL<<25),reale(35330975,0x17e35b3509831LL),
       // C4[16], coeff of eps^26, polynomial in n of order 0
-      -real(22951LL<<32),reale(14038LL,0xf79362a6f2da9LL),
+      -real(22951LL<<32),reale(14038,0xf79362a6f2da9LL),
       // C4[16], coeff of eps^25, polynomial in n of order 1
-      -real(72136LL<<32),real(38520LL<<28),reale(9206LL,0xf354c01a236f3LL),
+      -real(9017LL<<35),real(4815LL<<31),reale(9206,0xf354c01a236f3LL),
       // C4[16], coeff of eps^24, polynomial in n of order 2
-      real(0x117dcfLL<<36),real(0x6fd5b8LL<<32),-real(0x57f207LL<<32),
-      reale(0x1e3466LL,0x5c2d55f3c2615LL),
+      real(1146319LL<<36),real(916151LL<<35),-real(5763591LL<<32),
+      reale(1979494,0x5c2d55f3c2615LL),
       // C4[16], coeff of eps^23, polynomial in n of order 3
-      -real(0x74594b8LL<<32),real(0x51af5fLL<<36),-real(0x1118be8LL<<32),
-      -real(0x2895a8LL<<28),reale(0x1e3466LL,0x5c2d55f3c2615LL),
+      -real(15250071LL<<35),real(5353311LL<<36),-real(2240893LL<<35),
+      -real(332469LL<<31),reale(1979494,0x5c2d55f3c2615LL),
       // C4[16], coeff of eps^22, polynomial in n of order 4
-      reale(-2281LL,39380LL<<36),-real(0x4b4b50dLL<<36),real(0x1776d4aLL<<36),
-      real(0x1b7e671LL<<36),-real(0xcc2c56bLL<<32),
-      reale(0x23de398LL,0xd75d61176d38fLL),
+      -reale(2280,6539LL<<38),-real(78951693LL<<36),real(12301989LL<<37),
+      real(28829297LL<<36),-real(214091115LL<<32),
+      reale(37610392,0xd75d61176d38fLL),
       // C4[16], coeff of eps^21, polynomial in n of order 5
-      reale(3604LL,321208LL<<32),reale(4989LL,51182LL<<36),
-      reale(-5767LL,0xf5608LL<<32),reale(2335LL,38023LL<<36),
-      -real(0x118945a8LL<<32),-real(0x23321c28LL<<28),
-      reale(0x23de398LL,0xd75d61176d38fLL),
+      reale(3604,40151LL<<35),reale(4989,25591LL<<37),-reale(5766,5439LL<<35),
+      reale(2335,38023LL<<36),-real(36776117LL<<35),-real(73810821LL<<31),
+      reale(37610392,0xd75d61176d38fLL),
       // C4[16], coeff of eps^20, polynomial in n of order 6
-      reale(-28604LL,48266LL<<36),reale(5695LL,63155LL<<36),
-      reale(4892LL,56156LL<<36),reale(-3092LL,6917LL<<36),
-      -real(0x3777fd2LL<<36),real(0x5fd58d7LL<<36),-real(0x1e0959d4LL<<32),
-      reale(0x23de398LL,0xd75d61176d38fLL),
+      -reale(28603,8635LL<<37),reale(5695,63155LL<<36),reale(4892,14039LL<<38),
+      -reale(3091,58619LL<<36),-real(29081577LL<<37),real(100489431LL<<36),
+      -real(125982325LL<<34),reale(37610392,0xd75d61176d38fLL),
       // C4[16], coeff of eps^19, polynomial in n of order 7
-      -real(0x1511e3e8LL<<32),reale(28752LL,63675LL<<36),
-      reale(-37203LL,472264LL<<32),reale(26902LL,36338LL<<36),
-      reale(-11513LL,203384LL<<32),reale(2229LL,59753LL<<36),
-      real(0xc947b28LL<<32),-real(0x7fa337d8LL<<28),
-      reale(0x23de398LL,0xd75d61176d38fLL),
+      -real(44186749LL<<35),reale(28752,63675LL<<36),-reale(37202,72039LL<<35),
+      reale(26902,18169LL<<37),-reale(11512,105649LL<<35),
+      reale(2229,59753LL<<36),real(26382181LL<<35),-real(267675387LL<<31),
+      reale(37610392,0xd75d61176d38fLL),
       // C4[16], coeff of eps^18, polynomial in n of order 8
-      reale(51956LL,28024LL<<36),reale(-52001LL,245LL<<36),
-      reale(36995LL,60922LL<<36),reale(-12344LL,10831LL<<36),
-      reale(-9829LL,57276LL<<36),reale(19743LL,35337LL<<36),
-      reale(-17125LL,23806LL<<36),reale(8752LL,19043LL<<36),
-      reale(-2082LL,493631LL<<32),reale(0x23de398LL,0xd75d61176d38fLL),
+      reale(51956,3503LL<<39),-reale(52000,65291LL<<36),
+      reale(36995,30461LL<<37),-reale(12343,54705LL<<36),
+      -reale(9828,2065LL<<38),reale(19743,35337LL<<36),
+      -reale(17124,20865LL<<37),reale(8752,19043LL<<36),
+      -reale(2081,554945LL<<32),reale(37610392,0xd75d61176d38fLL),
       // C4[16], coeff of eps^17, polynomial in n of order 9
-      reale(11351LL,122104LL<<32),reale(-21032LL,24332LL<<36),
-      reale(32809LL,309896LL<<32),reale(-42827LL,63737LL<<36),
-      reale(46156LL,986392LL<<32),reale(-40103LL,50694LL<<36),
-      reale(26942LL,134824LL<<32),reale(-13032LL,53203LL<<36),
-      reale(3987LL,162104LL<<32),-real(0x23bb00708LL<<28),
-      reale(0x23de398LL,0xd75d61176d38fLL),
+      reale(11351,15263LL<<35),-reale(21031,10301LL<<38),
+      reale(32809,38737LL<<35),-reale(42826,1799LL<<36),
+      reale(46156,123299LL<<35),-reale(40102,7421LL<<37),
+      reale(26942,16853LL<<35),-reale(13031,12333LL<<36),
+      reale(3987,20263LL<<35),-real(1198915809LL<<31),
+      reale(37610392,0xd75d61176d38fLL),
       // C4[16], coeff of eps^16, polynomial in n of order 10
-      real(0x17e28184LL<<32),-real(0x458c00a6LL<<32),reale(2759LL,6541LL<<36),
-      reale(-5864LL,957254LL<<32),reale(10706LL,531484LL<<32),
-      reale(-16774LL,495538LL<<32),reale(22364LL,737384LL<<32),
-      reale(-24872LL,951710LL<<32),reale(21929LL,367284LL<<32),
-      reale(-12959LL,783882LL<<32),reale(3525LL,0x682b5cLL<<28),
-      reale(0x23de398LL,0xd75d61176d38fLL),
+      real(100180065LL<<34),-real(583401555LL<<33),reale(2759,6541LL<<36),
+      -reale(5863,45661LL<<33),reale(10706,132871LL<<34),
+      -reale(16773,276519LL<<33),reale(22364,92173LL<<35),
+      -reale(24871,48433LL<<33),reale(21929,91821LL<<34),
+      -reale(12958,132347LL<<33),reale(3525,1706711LL<<30),
+      reale(37610392,0xd75d61176d38fLL),
       // C4[17], coeff of eps^26, polynomial in n of order 0
       real(1LL<<32),real(0x62a61c3e4dd975LL),
       // C4[17], coeff of eps^25, polynomial in n of order 1
-      real(32456LL<<32),-real(360120LL<<28),reale(8569LL,0x3d59f665e75a3LL),
+      real(4057LL<<35),-real(45015LL<<31),reale(8569,0x3d59f665e75a3LL),
       // C4[17], coeff of eps^24, polynomial in n of order 2
-      real(43463LL<<40),-real(135160LL<<36),-real(45580LL<<32),
-      reale(299923LL,0x634cafeea1549LL),
+      real(43463LL<<40),-real(16895LL<<39),-real(11395LL<<34),
+      reale(299923,0x634cafeea1549LL),
       // C4[17], coeff of eps^23, polynomial in n of order 3
-      -real(0x97b2e8LL<<32),real(138325LL<<36),real(0x353008LL<<32),
-      -real(0x171e178LL<<28),reale(299923LL,0x634cafeea1549LL),
+      -real(1242717LL<<35),real(138325LL<<36),real(435713LL<<35),
+      -real(3030063LL<<31),reale(299923,0x634cafeea1549LL),
       // C4[17], coeff of eps^22, polynomial in n of order 4
-      real(0x11914e8LL<<36),-real(0x1198806LL<<36),real(0x6aad14LL<<36),
-      -real(744226LL<<36),-real(0x1dbcbfLL<<32),
-      reale(0x200907LL,0xb718cf86694ffLL),
+      real(2302621LL<<39),-real(9225219LL<<37),real(1747781LL<<38),
+      -real(372113LL<<37),-real(1948863LL<<32),
+      reale(2099463,0xb718cf86694ffLL),
       // C4[17], coeff of eps^21, polynomial in n of order 5
-      reale(2996LL,558104LL<<32),reale(5105LL,60614LL<<36),
-      reale(-2617LL,864168LL<<32),-real(0x40606cdLL<<36),
-      real(0x5b76e438LL<<32),-real(0x1bd1b2248LL<<28),
-      reale(0x260ab92LL,0x96d766f9d0eedLL),
+      reale(2996,69763LL<<35),reale(5105,30307LL<<37),-reale(2616,23051LL<<35),
+      -real(67503821LL<<36),real(191814791LL<<35),-real(933454921LL<<31),
+      reale(39889810,0x96d766f9d0eedLL),
       // C4[17], coeff of eps^20, polynomial in n of order 6
-      reale(30327LL,10344LL<<36),reale(-35085LL,52340LL<<36),
-      reale(23968LL,2311LL<<40),reale(-9777LL,37164LL<<36),
-      real(0x6c06b78LL<<36),real(0xeb3424LL<<36),-real(0x7509546LL<<32),
-      reale(0x260ab92LL,0x96d766f9d0eedLL),
+      reale(30327,1293LL<<39),-reale(35084,3299LL<<38),reale(23968,2311LL<<40),
+      -reale(9776,7093LL<<38),real(14159215LL<<39),real(3853577LL<<38),
+      -real(61360803LL<<33),reale(39889810,0x96d766f9d0eedLL),
       // C4[17], coeff of eps^19, polynomial in n of order 7
-      reale(-47758LL,665464LL<<32),reale(31664LL,61447LL<<36),
-      reale(-8327LL,461032LL<<32),reale(-11213LL,30202LL<<36),
-      reale(19076LL,191320LL<<32),reale(-15917LL,2861LL<<36),
-      reale(8026LL,341192LL<<32),-real(0x76e6858b8LL<<28),
-      reale(0x260ab92LL,0x96d766f9d0eedLL),
+      -reale(47757,47889LL<<35),reale(31664,61447LL<<36),
+      -reale(8326,73443LL<<35),-reale(11212,17667LL<<37),
+      reale(19076,23915LL<<35),-reale(15916,62675LL<<36),
+      reale(8026,42649LL<<35),-real(3989637911LL<<31),
+      reale(39889810,0x96d766f9d0eedLL),
       // C4[17], coeff of eps^18, polynomial in n of order 8
-      reale(-22253LL,3173LL<<40),reale(33139LL,4898LL<<36),
-      reale(-41619LL,37916LL<<36),reale(43458LL,60582LL<<36),
-      reale(-36815LL,53288LL<<36),reale(24253LL,7690LL<<36),
-      reale(-11562LL,54708LL<<36),reale(3500LL,60046LL<<36),
-      -real(0x1f264f27LL<<32),reale(0x260ab92LL,0x96d766f9d0eedLL),
+      -reale(22252,923LL<<40),reale(33139,2449LL<<37),-reale(41618,6905LL<<38),
+      reale(43458,30291LL<<37),-reale(36814,1531LL<<39),
+      reale(24253,3845LL<<37),-reale(11561,2707LL<<38),reale(3500,30023LL<<37),
+      -real(522604327LL<<32),reale(39889810,0x96d766f9d0eedLL),
       // C4[17], coeff of eps^17, polynomial in n of order 9
-      -real(0x53db06e8LL<<32),reale(3123LL,33372LL<<36),
-      reale(-6298LL,57448LL<<32),reale(11012LL,26677LL<<36),
-      reale(-16655LL,454840LL<<32),reale(21593LL,33198LL<<36),
-      reale(-23510LL,986120LL<<32),reale(20422LL,743LL<<36),
-      reale(-11962LL,562264LL<<32),reale(3239LL,0x9027d8LL<<28),
-      reale(0x260ab92LL,0x96d766f9d0eedLL),
+      -real(175857885LL<<35),reale(3123,8343LL<<38),-reale(6297,123891LL<<35),
+      reale(11012,26677LL<<36),-reale(16654,74217LL<<35),
+      reale(21593,16599LL<<37),-reale(23509,7807LL<<35),reale(20422,743LL<<36),
+      -reale(11961,60789LL<<35),reale(3239,1180923LL<<31),
+      reale(39889810,0x96d766f9d0eedLL),
       // C4[18], coeff of eps^26, polynomial in n of order 0
-      -real(112174LL<<32),reale(47221LL,0xfaefc0318df67LL),
+      -real(56087LL<<33),reale(47221,0xfaefc0318df67LL),
       // C4[18], coeff of eps^25, polynomial in n of order 1
-      -real(159848LL<<36),-real(86040LL<<32),reale(443886LL,0x9d340e9e9cd95LL),
+      -real(19981LL<<39),-real(10755LL<<35),reale(443886,0x9d340e9e9cd95LL),
       // C4[18], coeff of eps^24, polynomial in n of order 2
-      real(673240LL<<36),real(0x1731acLL<<36),-real(0x9878d8LL<<32),
-      reale(0x21dda9LL,0x12044919103e9LL),
+      real(84155LL<<39),real(380011LL<<38),-real(1249051LL<<35),
+      reale(2219433,0x12044919103e9LL),
       // C4[18], coeff of eps^23, polynomial in n of order 3
-      -real(0x1042158LL<<36),real(379583LL<<40),-real(565192LL<<36),
-      -real(0x1d5db8LL<<32),reale(0x21dda9LL,0x12044919103e9LL),
+      -real(2130987LL<<39),real(379583LL<<40),-real(70649LL<<39),
+      -real(240567LL<<35),reale(2219433,0x12044919103e9LL),
       // C4[18], coeff of eps^22, polynomial in n of order 4
-      real(0x10d9e84LL<<36),-real(0x72a70dLL<<36),-real(0x3bd63eLL<<36),
-      real(0x496dd1LL<<36),-real(0x15c2fa6LL<<32),
-      reale(0x21dda9LL,0x12044919103e9LL),
+      real(4417441LL<<38),-real(7513869LL<<36),-real(1960735LL<<37),
+      real(4812241LL<<36),-real(11409363LL<<33),
+      reale(2219433,0x12044919103e9LL),
       // C4[18], coeff of eps^21, polynomial in n of order 5
-      -real(0x6c2614cLL<<36),real(0x463f91LL<<40),-real(0x1b60794LL<<36),
-      real(0x460f88LL<<36),real(882980LL<<36),-real(0x5a7684LL<<32),
-      reale(0x21dda9LL,0x12044919103e9LL),
+      -real(28350547LL<<38),real(4603793LL<<40),-real(7176677LL<<38),
+      real(573937LL<<39),real(220745LL<<38),-real(1482145LL<<34),
+      reale(2219433,0x12044919103e9LL),
       // C4[18], coeff of eps^20, polynomial in n of order 6
-      reale(26896LL,20636LL<<36),reale(-4988LL,47778LL<<36),
-      reale(-12194LL,14952LL<<36),reale(18360LL,53550LL<<36),
-      reale(-14826LL,30772LL<<36),reale(7390LL,53946LL<<36),
-      -real(0x6d310d54LL<<32),reale(0x283738cLL,0x56516cdc34a4bLL),
+      reale(26896,5159LL<<38),-reale(4987,8879LL<<37),-reale(12193,6323LL<<39),
+      reale(18360,26775LL<<37),-reale(14825,8691LL<<38),
+      reale(7390,26973LL<<37),-real(457982805LL<<34),
+      reale(42169228,0x56516cdc34a4bLL),
       // C4[18], coeff of eps^19, polynomial in n of order 7
-      reale(11070LL,49036LL<<36),reale(-13432LL,16696LL<<36),
-      reale(13633LL,18532LL<<36),reale(-11289LL,1325LL<<40),
-      reale(7306LL,46652LL<<36),reale(-3438LL,26728LL<<36),
-      real(0x4074714LL<<36),-real(0x91df1b4LL<<32),
-      reale(0xd67bd9LL,0x721b244966e19LL),
+      reale(11070,12259LL<<38),-reale(13431,6105LL<<39),
+      reale(13633,4633LL<<38),-reale(11288,2771LL<<40),reale(7306,11663LL<<38),
+      -reale(3437,4851LL<<39),real(16896453LL<<38),-real(38239341LL<<34),
+      reale(14056409,0x721b244966e19LL),
       // C4[18], coeff of eps^18, polynomial in n of order 8
-      reale(3471LL,43464LL<<36),reale(-6683LL,3167LL<<36),
-      reale(11244LL,21718LL<<36),reale(-16479LL,15629LL<<36),
-      reale(20837LL,43236LL<<36),reale(-22259LL,38715LL<<36),
-      reale(19078LL,41714LL<<36),reale(-11087LL,50153LL<<36),
-      reale(2990LL,383722LL<<32),reale(0x283738cLL,0x56516cdc34a4bLL),
+      reale(3471,5433LL<<39),-reale(6682,62369LL<<36),reale(11244,10859LL<<37),
+      -reale(16478,49907LL<<36),reale(20837,10809LL<<38),
+      -reale(22258,26821LL<<36),reale(19078,20857LL<<37),
+      -reale(11086,15383LL<<36),reale(2990,191861LL<<33),
+      reale(42169228,0x56516cdc34a4bLL),
       // C4[19], coeff of eps^26, polynomial in n of order 0
-      -real(226LL<<36),reale(16591LL,0x81ae2ec54d8dfLL),
+      -real(113LL<<37),reale(16591,0x81ae2ec54d8dfLL),
       // C4[19], coeff of eps^25, polynomial in n of order 1
-      real(94099LL<<40),-real(0x8fd608LL<<32),
-      reale(0x23b24aLL,0x6cefc2abb72d3LL),
+      real(94099LL<<40),-real(1178305LL<<35),reale(2339402,0x6cefc2abb72d3LL),
       // C4[19], coeff of eps^24, polynomial in n of order 2
-      real(330104LL<<40),-real(26332LL<<40),-real(117501LL<<36),
-      reale(0x23b24aLL,0x6cefc2abb72d3LL),
+      real(41263LL<<43),-real(6583LL<<42),-real(117501LL<<36),
+      reale(2339402,0x6cefc2abb72d3LL),
       // C4[19], coeff of eps^23, polynomial in n of order 3
-      -real(384159LL<<40),-real(261954LL<<40),real(286571LL<<40),
-      -real(0x14458c8LL<<32),reale(0x23b24aLL,0x6cefc2abb72d3LL),
+      -real(384159LL<<40),-real(130977LL<<41),real(286571LL<<40),
+      -real(2657049LL<<35),reale(2339402,0x6cefc2abb72d3LL),
       // C4[19], coeff of eps^22, polynomial in n of order 4
-      real(256484LL<<44),-real(95676LL<<44),real(13674LL<<44),real(3604LL<<44),
-      -real(340578LL<<36),reale(0x23b24aLL,0x6cefc2abb72d3LL),
+      real(64121LL<<46),-real(23919LL<<46),real(6837LL<<45),real(901LL<<46),
+      -real(170289LL<<37),reale(2339402,0x6cefc2abb72d3LL),
       // C4[19], coeff of eps^21, polynomial in n of order 5
-      -real(0x74ab18LL<<36),-real(0x2a50f6LL<<40),real(0x39fb358LL<<36),
-      -real(0x2d852bLL<<40),real(0x1678ac8LL<<36),-real(0x54cf1bcLL<<32),
-      reale(0x23b24aLL,0x6cefc2abb72d3LL),
+      -real(955747LL<<39),-real(1386619LL<<41),real(7599723LL<<39),
+      -real(2983211LL<<40),real(2945369LL<<39),-real(22232175LL<<34),
+      reale(2339402,0x6cefc2abb72d3LL),
       // C4[19], coeff of eps^20, polynomial in n of order 6
-      -real(0x7ff89cLL<<40),real(0x7e9b22LL<<40),-real(0x66b1a8LL<<40),
-      real(0x4169eeLL<<40),-real(0x1e6934LL<<40),real(592858LL<<40),
-      -real(0x145aaa8LL<<32),reale(0x23b24aLL,0x6cefc2abb72d3LL),
+      -real(2096679LL<<42),real(4148625LL<<41),-real(841269LL<<43),
+      real(2143479LL<<41),-real(498253LL<<42),real(296429LL<<41),
+      -real(2667861LL<<35),reale(2339402,0x6cefc2abb72d3LL),
       // C4[19], coeff of eps^19, polynomial in n of order 7
-      -real(0x1717fa8LL<<36),real(0x258a9bLL<<40),-real(0x357c878LL<<36),
-      real(0x4220f2LL<<40),-real(0x456f648LL<<36),real(0x3acd09LL<<40),
-      -real(0x21ec718LL<<36),real(0x91df1b4LL<<32),
-      reale(0x23b24aLL,0x6cefc2abb72d3LL),
+      -real(3026933LL<<39),real(2460315LL<<40),-real(7010575LL<<39),
+      real(2166905LL<<41),-real(9101001LL<<39),real(3853577LL<<40),
+      -real(4446435LL<<39),real(38239341LL<<34),
+      reale(2339402,0x6cefc2abb72d3LL),
       // C4[20], coeff of eps^26, polynomial in n of order 0
-      -real(34781LL<<40),reale(0x2586ebLL,0xc7db3c3e5e1bdLL),
+      -real(34781LL<<40),reale(2459371,0xc7db3c3e5e1bdLL),
       // C4[20], coeff of eps^25, polynomial in n of order 1
-      -real(19084LL<<40),-real(113916LL<<36),
-      reale(0x2586ebLL,0xc7db3c3e5e1bdLL),
+      -real(4771LL<<42),-real(28479LL<<38),reale(2459371,0xc7db3c3e5e1bdLL),
       // C4[20], coeff of eps^24, polynomial in n of order 2
-      -real(273868LL<<40),real(273002LL<<40),-real(0x12ef04LL<<36),
-      reale(0x2586ebLL,0xc7db3c3e5e1bdLL),
+      -real(68467LL<<42),real(136501LL<<41),-real(310209LL<<38),
+      reale(2459371,0xc7db3c3e5e1bdLL),
       // C4[20], coeff of eps^23, polynomial in n of order 3
-      -real(0x13f854LL<<40),real(164264LL<<40),real(58724LL<<40),
-      -real(313548LL<<36),reale(0x2586ebLL,0xc7db3c3e5e1bdLL),
+      -real(327189LL<<42),real(20533LL<<43),real(14681LL<<42),
+      -real(78387LL<<38),reale(2459371,0xc7db3c3e5e1bdLL),
       // C4[20], coeff of eps^22, polynomial in n of order 4
-      -real(179129LL<<44),real(0x3790d4LL<<40),-real(0x2a93c8LL<<40),
-      real(0x14d79cLL<<40),-real(321657LL<<40),
-      reale(0x2586ebLL,0xc7db3c3e5e1bdLL),
+      -real(179129LL<<44),real(910389LL<<42),-real(348793LL<<43),
+      real(341479LL<<42),-real(321657LL<<40),reale(2459371,0xc7db3c3e5e1bdLL),
       // C4[20], coeff of eps^21, polynomial in n of order 5
-      real(0x7729ecLL<<40),-real(388557LL<<44),real(0x3b8cf4LL<<40),
-      -real(0x1b62e8LL<<40),real(529788LL<<40),-real(0x1217b4LL<<36),
-      reale(0x2586ebLL,0xc7db3c3e5e1bdLL),
+      real(1952379LL<<42),-real(388557LL<<44),real(975677LL<<42),
+      -real(224349LL<<43),real(132447LL<<42),-real(296429LL<<38),
+      reale(2459371,0xc7db3c3e5e1bdLL),
       // C4[20], coeff of eps^20, polynomial in n of order 6
-      real(0x25ea6eLL<<40),-real(0x34a927LL<<40),real(0x3fcb74LL<<40),
-      -real(0x41f331LL<<40),real(0x373d7aLL<<40),-real(0x1fa97bLL<<40),
-      real(0x87b1c6LL<<36),reale(0x2586ebLL,0xc7db3c3e5e1bdLL),
+      real(1242423LL<<41),-real(3451175LL<<40),real(1045213LL<<42),
+      -real(4322097LL<<40),real(1810109LL<<41),-real(2075003LL<<40),
+      real(4446435LL<<37),reale(2459371,0xc7db3c3e5e1bdLL),
       // C4[21], coeff of eps^26, polynomial in n of order 0
-      -real(1592LL<<36),reale(37381LL,0xc16e795c129fbLL),
+      -real(199LL<<39),reale(37381,0xc16e795c129fbLL),
       // C4[21], coeff of eps^25, polynomial in n of order 1
-      real(260108LL<<40),-real(0x11ba5cLL<<36),
-      reale(0x275b8dLL,0x22c6b5d1050a7LL),
+      real(65027LL<<42),-real(290455LL<<38),reale(2579341,0x22c6b5d1050a7LL),
       // C4[21], coeff of eps^24, polynomial in n of order 2
-      real(7532LL<<44),real(3674LL<<44),-real(18073LL<<40),
-      reale(0x275b8dLL,0x22c6b5d1050a7LL),
+      real(1883LL<<46),real(1837LL<<45),-real(18073LL<<40),
+      reale(2579341,0x22c6b5d1050a7LL),
       // C4[21], coeff of eps^23, polynomial in n of order 3
-      real(0x353154LL<<40),-real(0x27e7e8LL<<40),real(0x13649cLL<<40),
-      -real(0x48f9acLL<<36),reale(0x275b8dLL,0x22c6b5d1050a7LL),
+      real(871509LL<<42),-real(326909LL<<43),real(317735LL<<42),
+      -real(1195627LL<<38),reale(2579341,0x22c6b5d1050a7LL),
       // C4[21], coeff of eps^22, polynomial in n of order 4
-      -real(119884LL<<44),real(74261LL<<44),-real(33814LL<<44),
-      real(9911LL<<44),-real(353192LL<<36),reale(859780LL,0x60ece745ac58dLL),
+      -real(29971LL<<46),real(74261LL<<44),-real(16907LL<<45),real(9911LL<<44),
+      -real(44149LL<<39),reale(859780,0x60ece745ac58dLL),
       // C4[21], coeff of eps^21, polynomial in n of order 5
-      -real(0x33c20cLL<<40),real(252109LL<<44),-real(0x3ebbd4LL<<40),
-      real(0x3405e8LL<<40),-real(0x1da41cLL<<40),real(0x7ea5ecLL<<36),
-      reale(0x275b8dLL,0x22c6b5d1050a7LL),
+      -real(848003LL<<42),real(252109LL<<44),-real(1027829LL<<42),
+      real(426173LL<<43),-real(485639LL<<42),real(2075003LL<<38),
+      reale(2579341,0x22c6b5d1050a7LL),
       // C4[22], coeff of eps^26, polynomial in n of order 0
-      -real(2963LL<<40),reale(117361LL,0x5360ca6881e97LL),
+      -real(2963LL<<40),reale(117361,0x5360ca6881e97LL),
       // C4[22], coeff of eps^25, polynomial in n of order 1
-      real(158LL<<44),-real(726LL<<40),reale(117361LL,0x5360ca6881e97LL),
+      real(79LL<<45),-real(363LL<<41),reale(117361,0x5360ca6881e97LL),
       // C4[22], coeff of eps^24, polynomial in n of order 2
-      -real(153502LL<<44),real(74129LL<<44),-real(278674LL<<40),
-      reale(0x29302eLL,0x7db22f63abf91LL),
+      -real(76751LL<<45),real(74129LL<<44),-real(139337LL<<41),
+      reale(2699310,0x7db22f63abf91LL),
       // C4[22], coeff of eps^23, polynomial in n of order 3
-      real(204102LL<<44),-real(92092LL<<44),real(26818LL<<44),
-      -real(59466LL<<40),reale(0x29302eLL,0x7db22f63abf91LL),
+      real(102051LL<<45),-real(23023LL<<46),real(13409LL<<45),
+      -real(29733LL<<41),reale(2699310,0x7db22f63abf91LL),
       // C4[22], coeff of eps^22, polynomial in n of order 4
-      real(243294LL<<44),-real(0x3bc298LL<<40),real(201135LL<<44),
-      -real(0x1bd388LL<<40),real(485639LL<<40),
-      reale(0x29302eLL,0x7db22f63abf91LL),
+      real(121647LL<<45),-real(489555LL<<43),real(201135LL<<44),
+      -real(227953LL<<43),real(485639LL<<40),reale(2699310,0x7db22f63abf91LL),
       // C4[23], coeff of eps^26, polynomial in n of order 0
-      -real(2LL<<44),reale(5837LL,0x4b04b152e489LL),
+      -real(1LL<<45),reale(5837,0x4b04b152e489LL),
       // C4[23], coeff of eps^25, polynomial in n of order 1
-      real(3016LL<<44),-real(11330LL<<40),reale(122577LL,0x627628bccbf3dLL),
+      real(377LL<<47),-real(5665LL<<41),reale(122577,0x627628bccbf3dLL),
       // C4[23], coeff of eps^24, polynomial in n of order 2
-      -real(228LL<<48),real(66LL<<48),-real(2332LL<<40),
-      reale(122577LL,0x627628bccbf3dLL),
+      -real(57LL<<50),real(33LL<<49),-real(583LL<<42),
+      reale(122577,0x627628bccbf3dLL),
       // C4[23], coeff of eps^23, polynomial in n of order 3
-      -real(10152LL<<44),real(517LL<<48),-real(4664LL<<44),real(19822LL<<40),
-      reale(122577LL,0x627628bccbf3dLL),
+      -real(1269LL<<47),real(517LL<<48),-real(583LL<<47),real(9911LL<<41),
+      reale(122577,0x627628bccbf3dLL),
       // C4[24], coeff of eps^26, polynomial in n of order 0
-      -real(664LL<<44),reale(127793LL,0x718b871115fe3LL),
+      -real(83LL<<47),reale(127793,0x718b871115fe3LL),
       // C4[24], coeff of eps^25, polynomial in n of order 1
-      real(20LL<<48),-real(44LL<<44),reale(42597LL,0xd083d7b05caa1LL),
+      real(5LL<<50),-real(11LL<<46),reale(42597,0xd083d7b05caa1LL),
       // C4[24], coeff of eps^24, polynomial in n of order 2
-      real(490LL<<48),-real(275LL<<48),real(1166LL<<44),
-      reale(127793LL,0x718b871115fe3LL),
+      real(245LL<<49),-real(275LL<<48),real(583LL<<45),
+      reale(127793,0x718b871115fe3LL),
       // C4[25], coeff of eps^26, polynomial in n of order 0
-      -real(8LL<<44),reale(8867LL,0x4cd786c27dde7LL),
+      -real(1LL<<47),reale(8867,0x4cd786c27dde7LL),
       // C4[25], coeff of eps^25, polynomial in n of order 1
-      -real(52LL<<48),real(220LL<<44),reale(26601LL,0xe6869447799b5LL),
+      -real(13LL<<50),real(55LL<<46),reale(26601,0xe6869447799b5LL),
       // C4[26], coeff of eps^26, polynomial in n of order 0
-      real(1LL<<48),reale(2126LL,0x8c0e9e949456fLL),
-    };
+      real(1LL<<48),reale(2126,0x8c0e9e949456fLL),
+    };  // count = 4032
 #elif GEOGRAPHICLIB_GEODESICEXACT_ORDER == 30
     static const real coeff[] = {
       // C4[0], coeff of eps^29, polynomial in n of order 0
-      real(3361LL),real(0x6803dafLL),
+      3361,real(109067695),
       // C4[0], coeff of eps^28, polynomial in n of order 1
-      real(0x74154c0LL),real(0x1cc5554LL),real(0x269c465a0c9LL),
+      real(121722048),real(30168404),real(0x269c465a0c9LL),
       // C4[0], coeff of eps^27, polynomial in n of order 2
-      real(0x50de7a6e0LL),-real(0x282ec9e50LL),real(0x1dfb4ba1bLL),
+      real(21708121824LL),-real(10786479696LL),real(8048130587LL),
       real(0xbfa33c13e963LL),
       // C4[0], coeff of eps^26, polynomial in n of order 3
       real(0x738319564e0LL),-real(0x4c2475635c0LL),real(0x25d0be52da0LL),
-      real(0x95c020b74eLL),real(0xa0f21774b90225LL),
+      real(643173496654LL),real(0xa0f21774b90225LL),
       // C4[0], coeff of eps^25, polynomial in n of order 4
       real(0x7a99ea0a52f40LL),-real(0x5a5f53e2c3b50LL),real(0x3b83d2c0c8da0LL),
       -real(0x1d8a81cb5cc70LL),real(0x1605bd50459c1LL),
@@ -4107,336 +4063,278 @@ namespace GeographicLib {
       real(0x2507d929b7f89580LL),-real(0x1ce7bf02c3715a00LL),
       real(0x15463c23456c8680LL),-real(0xdfecff0050dfd00LL),
       real(0x6f141ba97196780LL),real(0x1b71ab9c78b8b48LL),
-      reale(0x1734efLL,0x957266bcf90f9LL),
+      reale(1520879,0x957266bcf90f9LL),
       // C4[0], coeff of eps^23, polynomial in n of order 6
-      reale(5214LL,0xb54b8c26f5620LL),reale(-4203LL,0xb51a0a43406b0LL),
-      reale(3272LL,0xab988a50dfac0LL),reale(-2405LL,0x7b519f36184d0LL),
+      reale(5214,0xb54b8c26f5620LL),-reale(4202,0x4ae5f5bcbf950LL),
+      reale(3272,0xab988a50dfac0LL),-reale(2404,0x84ae60c9e7b30LL),
       real(0x62be65b26227b760LL),-real(0x30f2645200be8b10LL),
-      real(0x2472ebc3f09ad327LL),reale(0x8fe1cdLL,0x6b5ee3606e93bLL),
+      real(0x2472ebc3f09ad327LL),reale(9429453,0x6b5ee3606e93bLL),
       // C4[0], coeff of eps^22, polynomial in n of order 7
-      reale(213221LL,0x21fe88963f0e0LL),reale(-174747LL,0xed01fc507d1c0LL),
-      reale(140344LL,0xd3dfad978d4a0LL),reale(-109010LL,0xec11fc2ea0e80LL),
-      reale(79932LL,0x9fff01479b460LL),reale(-52448LL,0xac156ba4a7b40LL),
-      reale(25976LL,0xa5a6ee990f820LL),reale(6403LL,0x87dc4a069efc6LL),
-      reale(0x104c9445LL,0x29bfc1ec86bafLL),
+      reale(213221,0x21fe88963f0e0LL),-reale(174746,0x12fe03af82e40LL),
+      reale(140344,0xd3dfad978d4a0LL),-reale(109009,0x13ee03d15f180LL),
+      reale(79932,0x9fff01479b460LL),-reale(52447,0x53ea945b584c0LL),
+      reale(25976,0xa5a6ee990f820LL),reale(6403,0x87dc4a069efc6LL),
+      reale(273454149,0x29bfc1ec86bafLL),
       // C4[0], coeff of eps^21, polynomial in n of order 8
-      reale(0x171929LL,0x9572babb99080LL),reale(-0x130a9fLL,0x999f64e91edb0LL),
-      reale(0xf875cLL,0x228016ac84e60LL),reale(-814137LL,0x7913cecbaa210LL),
-      reale(630421LL,0xa88f591713840LL),reale(-461206LL,0xb780fdc49f070LL),
-      reale(302134LL,0x36942691aea20LL),reale(-149504LL,0xa5e26506b34d0LL),
-      reale(111169LL,0xb14ab93d4ba6dLL),reale(0x517ee559LL,0xd0bec99ea1a6bLL),
+      reale(1513769,0x9572babb99080LL),-reale(1247902,0x66609b16e1250LL),
+      reale(1017692,0x228016ac84e60LL),-reale(814136,0x86ec313455df0LL),
+      reale(630421,0xa88f591713840LL),-reale(461205,0x487f023b60f90LL),
+      reale(302134,0x36942691aea20LL),-reale(149503,0x5a1d9af94cb30LL),
+      reale(111169,0xb14ab93d4ba6dLL),reale(1367270745,0xd0bec99ea1a6bLL),
       // C4[0], coeff of eps^20, polynomial in n of order 9
-      reale(0x2182aaLL,0xe1b60fe1808c0LL),reale(-0x1b814dLL,0xc4b4e3d5cbe00LL),
-      reale(0x168277LL,0x47b8ccbe8340LL),reale(-0x124018LL,0xd1d5bfe3b9680LL),
-      reale(952413LL,0x117e9e1fb75c0LL),reale(-734857LL,0xd1e60e1841f00LL),
-      reale(536171LL,0x8daa599335040LL),reale(-350595LL,0xf5a72b995c780LL),
-      reale(173293LL,0x7b19cdc9682c0LL),reale(42591LL,0xb005bdeb82d74LL),
-      reale(0x517ee559LL,0xd0bec99ea1a6bLL),
+      reale(2196138,0xe1b60fe1808c0LL),-reale(1802572,0x3b4b1c2a34200LL),
+      reale(1475191,0x47b8ccbe8340LL),-reale(1196055,0x2e2a401c46980LL),
+      reale(952413,0x117e9e1fb75c0LL),-reale(734856,0x2e19f1e7be100LL),
+      reale(536171,0x8daa599335040LL),-reale(350594,0xa58d466a3880LL),
+      reale(173293,0x7b19cdc9682c0LL),reale(42591,0xb005bdeb82d74LL),
+      reale(1367270745,0xd0bec99ea1a6bLL),
       // C4[0], coeff of eps^19, polynomial in n of order 10
-      reale(0x97e43bLL,0x5ecc5371ca720LL),reale(-0x7a9e52LL,0x8336fa9a1f990LL),
-      reale(0x63879fLL,0x32e1ec30d1a80LL),reale(-0x50bd17LL,0xbe8d10d414f70LL),
-      reale(0x410187LL,0x65c388ed45de0LL),reale(-0x337b18LL,0xb259e1738fb50LL),
-      reale(0x278db9LL,0xcd194d02dbd40LL),reale(-0x1cc4daLL,0x5f7365df10930LL),
-      reale(0x12c554LL,0x4c527bc6a84a0LL),reale(-607280LL,0xdb291ae428510LL),
-      reale(450701LL,0xae98337b7d081LL),reale(0xf47cb00dLL,0x723c5cdbe4f41LL),
+      reale(9954363,0x5ecc5371ca720LL),-reale(8035921,0x7cc90565e0670LL),
+      reale(6522783,0x32e1ec30d1a80LL),-reale(5291286,0x4172ef2beb090LL),
+      reale(4260231,0x65c388ed45de0LL),-reale(3373847,0x4da61e8c704b0LL),
+      reale(2592185,0xcd194d02dbd40LL),-reale(1885401,0xa08c9a20ef6d0LL),
+      reale(1230164,0x4c527bc6a84a0LL),-reale(607279,0x24d6e51bd7af0LL),
+      reale(450701,0xae98337b7d081LL),reale(4101812237LL,0x723c5cdbe4f41LL),
       // C4[0], coeff of eps^18, polynomial in n of order 11
-      reale(0xf6975bLL,0x85a3ec5761ce0LL),reale(-0xc010d4LL,0x6848083afa540LL),
-      reale(0x984538LL,0xa0e43863a93a0LL),reale(-0x79e439LL,0x3050a99fd8100LL),
-      reale(0x61d04aLL,0xbffc30c12660LL),reale(-0x4e16fdLL,0x26ce724b3cc0LL),
-      reale(0x3d6fb4LL,0x94c482b815d20LL),reale(-0x2ef71eLL,0x63b7f527ae080LL),
-      reale(0x220869LL,0x99db799d8bfe0LL),reale(-0x16260bLL,0x4fffa269a7440LL),
-      reale(715485LL,0xdbe6a2ef6d6a0LL),reale(175141LL,0x3547b8669b9beLL),
-      reale(0xf47cb00dLL,0x723c5cdbe4f41LL),
+      reale(16160603,0x85a3ec5761ce0LL),-reale(12587219,0x97b7f7c505ac0LL),
+      reale(9979192,0xa0e43863a93a0LL),-reale(7988280,0xcfaf566027f00LL),
+      reale(6410314,0xbffc30c12660LL),-reale(5117692,0xfd9318db4c340LL),
+      reale(4026292,0x94c482b815d20LL),-reale(3077917,0x9c480ad851f80LL),
+      reale(2230377,0x99db799d8bfe0LL),-reale(1451530,0xb0005d9658bc0LL),
+      reale(715485,0xdbe6a2ef6d6a0LL),reale(175141,0x3547b8669b9beLL),
+      reale(4101812237LL,0x723c5cdbe4f41LL),
       // C4[0], coeff of eps^17, polynomial in n of order 12
-      reale(0x1cb2a29LL,0x8745c27487540LL),
-      reale(-0x14b5d21LL,0x85b44eb6a1e90LL),
-      reale(0xf9bc4eLL,0xd4e8bc19a0660LL),reale(-0xc155a7LL,0x6125f0a20d130LL),
-      reale(0x9808cfLL,0x5ae4f6d3c8380LL),reale(-0x785bd1LL,0xe6efcb8cc51d0LL),
-      reale(0x5f1741LL,0x96448488ef0a0LL),reale(-0x4a36bfLL,0xf983c38b4e470LL),
-      reale(0x386399LL,0x2e7ae0f4851c0LL),reale(-0x28ae09LL,0x1979b7873cd10LL),
-      reale(0x1a64cdLL,0xf881cba41aae0LL),reale(-851105LL,0x77702a4854fb0LL),
-      reale(629987LL,0x9ea5a19626943LL),reale(0xf47cb00dLL,0x723c5cdbe4f41LL),
+      reale(30091817,0x8745c27487540LL),-reale(21716256,0x7a4bb1495e170LL),
+      reale(16366670,0xd4e8bc19a0660LL),-reale(12670374,0x9eda0f5df2ed0LL),
+      reale(9963727,0x5ae4f6d3c8380LL),-reale(7887824,0x191034733ae30LL),
+      reale(6231873,0x96448488ef0a0LL),-reale(4863678,0x67c3c74b1b90LL),
+      reale(3695513,0x2e7ae0f4851c0LL),-reale(2665992,0xe6864878c32f0LL),
+      reale(1729741,0xf881cba41aae0LL),-reale(851104,0x888fd5b7ab050LL),
+      reale(629987,0x9ea5a19626943LL),reale(4101812237LL,0x723c5cdbe4f41LL),
       // C4[0], coeff of eps^16, polynomial in n of order 13
-      reale(0x4b83825LL,0x46beef62ca900LL),
-      reale(-0x2bd7055LL,0x7a5e627bdac00LL),
-      reale(0x1d50229LL,0x10d9a95bb4f00LL),
-      reale(-0x150fc0bLL,0x50c599a605a00LL),
-      reale(0xfc80d5LL,0x58583f22e9500LL),reale(-0xc1f541LL,0xc280e4e41c800LL),
-      reale(0x96e5ebLL,0xbbf5d84b2bb00LL),reale(-0x75aa16LL,0xc94e877623600LL),
-      reale(0x5aec67LL,0x73d1ebe040100LL),reale(-0x4492a4LL,0x5c8b5441e400LL),
-      reale(0x3133c5LL,0x29027e04ea700LL),reale(-0x1fce50LL,0x72881bd411200LL),
-      reale(0xf9dc9LL,0xbf113370eed00LL),reale(249103LL,0x93cdbdabe0fb0LL),
-      reale(0xf47cb00dLL,0x723c5cdbe4f41LL),
+      reale(79181861,0x46beef62ca900LL),-reale(45969492,0x85a19d8425400LL),
+      reale(30736937,0x10d9a95bb4f00LL),-reale(22084618,0xaf3a6659fa600LL),
+      reale(16548053,0x58583f22e9500LL),-reale(12711232,0x3d7f1b1be3800LL),
+      reale(9889259,0xbbf5d84b2bb00LL),-reale(7711253,0x36b17889dca00LL),
+      reale(5958759,0x73d1ebe040100LL),-reale(4493987,0xfa374abbe1c00LL),
+      reale(3224517,0x29027e04ea700LL),-reale(2084431,0x8d77e42beee00LL),
+      reale(1023433,0xbf113370eed00LL),reale(249103,0x93cdbdabe0fb0LL),
+      reale(4101812237LL,0x723c5cdbe4f41LL),
       // C4[0], coeff of eps^15, polynomial in n of order 14
-      reale(0x5fc38f5LL,0x1c7e0d98777e0LL),
-      reale(-0xd242504LL,0xe693d58008810LL),
-      reale(0x4db8f74LL,0xcf48e14d7b2c0LL),
-      reale(-0x2cf9165LL,0x4b3864100f370LL),
-      reale(0x1df218dLL,0x3ade51fc905a0LL),
-      reale(-0x1565f09LL,0x9d37bba5014d0LL),
-      reale(0xfea394LL,0xb49b2cc64ec80LL),reale(-0xc19874LL,0xca5adb0f72830LL),
-      reale(0x946d46LL,0xc96eb1166e360LL),reale(-0x71439cLL,0xca8b236006990LL),
-      reale(0x54a228LL,0x3897621326640LL),reale(-0x3c5281LL,0x859e2dc8514f0LL),
-      reale(0x26d1abLL,0x942757fc8f120LL),reale(-0x130299LL,0xa0a61d1db6650LL),
-      reale(918672LL,0xb7e149f3f515dLL),reale(0xf47cb00dLL,0x723c5cdbe4f41LL),
+      reale(100415733,0x1c7e0d98777e0LL),-reale(220472579,0x196c2a7ff77f0LL),
+      reale(81497972,0xcf48e14d7b2c0LL),-reale(47157604,0xb4c79beff0c90LL),
+      reale(31400333,0x3ade51fc905a0LL),-reale(22437640,0x62c8445afeb30LL),
+      reale(16688020,0xb49b2cc64ec80LL),-reale(12687475,0x35a524f08d7d0LL),
+      reale(9727302,0xc96eb1166e360LL),-reale(7422875,0x3574dc9ff9670LL),
+      reale(5546536,0x3897621326640LL),-reale(3953280,0x7a61d237aeb10LL),
+      reale(2544043,0x942757fc8f120LL),-reale(1245848,0x5f59e2e2499b0LL),
+      reale(918672,0xb7e149f3f515dLL),reale(4101812237LL,0x723c5cdbe4f41LL),
       // C4[0], coeff of eps^14, polynomial in n of order 15
-      reale(-0x187266b0LL,0xcc121102522a0LL),
-      reale(0x17368ed6LL,0x4a8eb37cf8e40LL),
-      reale(0x61c9a2eLL,0xdf54e754057e0LL),
-      reale(-0xd993a81LL,0x66d710967b680LL),
-      reale(0x501f49bLL,0x8c476a1354120LL),
-      reale(-0x2e2cc70LL,0xf6b7949b50ec0LL),
-      reale(0x1e962b0LL,0xac5157de0d660LL),
-      reale(-0x15b3ea3LL,0x902c3e28e0f00LL),
-      reale(0xffbd98LL,0x75de552320fa0LL),reale(-0xbfb6ecLL,0x319a838152f40LL),
-      reale(0x8ff034LL,0xee7b325fde4e0LL),reale(-0x6a4b51LL,0x3f56268dce780LL),
-      reale(0x4b2142LL,0x7fe1a8c934e20LL),reale(-0x301411LL,0x35323a40bafc0LL),
-      reale(0x17780aLL,0xc6e75548f4360LL),reale(371250LL,0x9b28ca926da22LL),
-      reale(0xf47cb00dLL,0x723c5cdbe4f41LL),
+      -reale(410150575,0x33edeefdadd60LL),reale(389451478,0x4a8eb37cf8e40LL),
+      reale(102537774,0xdf54e754057e0LL),-reale(228145792,0x9928ef6984980LL),
+      reale(84014235,0x8c476a1354120LL),-reale(48417903,0x9486b64af140LL),
+      reale(32072368,0xac5157de0d660LL),-reale(22757026,0x6fd3c1d71f100LL),
+      reale(16760216,0x75de552320fa0LL),-reale(12564203,0xce657c7ead0c0LL),
+      reale(9433140,0xee7b325fde4e0LL),-reale(6966096,0xc0a9d97231880LL),
+      reale(4923714,0x7fe1a8c934e20LL),-reale(3150864,0xcacdc5bf45040LL),
+      reale(1538058,0xc6e75548f4360LL),reale(371250,0x9b28ca926da22LL),
+      reale(4101812237LL,0x723c5cdbe4f41LL),
       // C4[0], coeff of eps^13, polynomial in n of order 16
-      reale(0x99ad32LL,0xbead2787bab00LL),reale(0x4a53514LL,0xc8037e807a610LL),
-      reale(-0x195498f9LL,0x6a3a755d543a0LL),
-      reale(0x182d7428LL,0xf37804095de30LL),
-      reale(0x63dbc55LL,0x2c34dddf07040LL),
-      reale(-0xe1b53e6LL,0x3f952bd85a450LL),
-      reale(0x52bcb89LL,0x36f6256b264e0LL),
-      reale(-0x2f71989LL,0x5bd35b3c86c70LL),
-      reale(0x1f3806cLL,0x1aa6eba145580LL),
-      reale(-0x15f24a2LL,0xbe1919f50aa90LL),
-      reale(0xff2864LL,0xa0e65eb557620LL),reale(-0xbb7477LL,0x8ed3ec76bd2b0LL),
-      reale(0x885218LL,0x44131ea6cfac0LL),reale(-0x5f538eLL,0x53b786fbc58d0LL),
-      reale(0x3c9287LL,0x8774cc7c1760LL),reale(-0x1d72cdLL,0xd58c69693b0f0LL),
-      reale(0x15971fLL,0x9f9bcb791811fLL),
-      reale(0xf47cb00dLL,0x723c5cdbe4f41LL),
+      reale(10071346,0xbead2787bab00LL),reale(77935892,0xc8037e807a610LL),
+      -reale(424974584,0x95c58aa2abc60LL),reale(405632040,0xf37804095de30LL),
+      reale(104709205,0x2c34dddf07040LL),-reale(236671973,0xc06ad427a5bb0LL),
+      reale(86756233,0x36f6256b264e0LL),-reale(49748360,0xa42ca4c379390LL),
+      reale(32735340,0x1aa6eba145580LL),-reale(23012513,0x41e6e60af5570LL),
+      reale(16722020,0xa0e65eb557620LL),-reale(12285046,0x712c138942d50LL),
+      reale(8933912,0x44131ea6cfac0LL),-reale(6247309,0xac4879043a730LL),
+      reale(3969671,0x8774cc7c1760LL),-reale(1929932,0x2a739696c4f10LL),
+      reale(1414943,0x9f9bcb791811fLL),reale(4101812237LL,0x723c5cdbe4f41LL),
       // C4[0], coeff of eps^12, polynomial in n of order 17
-      reale(0x13da11LL,0x7885767b34dc0LL),reale(0x2fe77cLL,0x6299dbe8eac00LL),
-      reale(0x9eb09bLL,0xe9c2f692aa40LL),reale(0x4cf4ecbLL,0xafcfc919b1e80LL),
-      reale(-0x1a51346aLL,0xcb0eb0f7c1ec0LL),
-      reale(0x19458119LL,0x2e9be95704100LL),
-      reale(0x65f0ce7LL,0x9a909730adb40LL),
-      reale(-0xead023bLL,0xc33de13104380LL),
-      reale(0x559807aLL,0x8e9ea1f760fc0LL),
-      reale(-0x30c52ebLL,0xb2e05ca4d5600LL),
-      reale(0x1fcfd6dLL,0x391836578ec40LL),
-      reale(-0x16148d5LL,0x98f20c7d1a880LL),
-      reale(0xfbcd77LL,0xfb453b1baa0c0LL),reale(-0xb35ea8LL,0x8cd5c6a276b00LL),
-      reale(0x7bad02LL,0xa64658fb65d40LL),reale(-0x4dde87LL,0x3639a72c0cd80LL),
-      reale(0x25a976LL,0x7d6aacb2351c0LL),reale(588064LL,0xecbdce72e5104LL),
-      reale(0xf47cb00dLL,0x723c5cdbe4f41LL),
+      reale(1301009,0x7885767b34dc0LL),reale(3139452,0x6299dbe8eac00LL),
+      reale(10399899,0xe9c2f692aa40LL),reale(80694987,0xafcfc919b1e80LL),
+      -reale(441529449,0x34f14f083e140LL),reale(423985433,0x2e9be95704100LL),
+      reale(106892519,0x9a909730adb40LL),-reale(246219322,0x3cc21ecefbc80LL),
+      reale(89751674,0x8e9ea1f760fc0LL),-reale(51139306,0x4d1fa35b2aa00LL),
+      reale(33357165,0x391836578ec40LL),-reale(23152852,0x670df382e5780LL),
+      reale(16502135,0xfb453b1baa0c0LL),-reale(11755175,0x732a395d89500LL),
+      reale(8105218,0xa64658fb65d40LL),-reale(5103238,0xc9c658d3f3280LL),
+      reale(2468214,0x7d6aacb2351c0LL),reale(588064,0xecbdce72e5104LL),
+      reale(4101812237LL,0x723c5cdbe4f41LL),
       // C4[0], coeff of eps^11, polynomial in n of order 18
-      reale(365173LL,0x141eb92882aa0LL),reale(660579LL,0x721db1cc80890LL),
-      reale(0x1470fbLL,0x6f3cff39e7d00LL),reale(0x3171b2LL,0xc29100e665970LL),
-      reale(0xa439d7LL,0xac38fa6376f60LL),reale(0x4fe3856LL,0x6edf90fa38050LL),
-      reale(-0x1b6dca72LL,0x585d3ea2fadc0LL),
-      reale(0x1a86c3deLL,0xb96af8d66e930LL),
-      reale(0x67f83deLL,0x840edc5d1e420LL),
-      reale(-0xf5196c0LL,0xd1386a6690010LL),
-      reale(0x58b7f0aLL,0x54adfb574be80LL),
-      reale(-0x322173cLL,0xe27d71d4930f0LL),
-      reale(0x204f4a6LL,0x109475f98e8e0LL),
-      reale(-0x1604c98LL,0xea72421c3e7d0LL),
-      reale(0xf3c608LL,0x7a6ca24c70f40LL),reale(-0xa4e555LL,0xc3f29664890b0LL),
-      reale(0x669063LL,0xd5a36326ddda0LL),reale(-0x3144eeLL,0x1bb23df2f9790LL),
-      reale(0x23c98bLL,0x81bdf10588059LL),
-      reale(0xf47cb00dLL,0x723c5cdbe4f41LL),
+      reale(365173,0x141eb92882aa0LL),reale(660579,0x721db1cc80890LL),
+      reale(1339643,0x6f3cff39e7d00LL),reale(3240370,0xc29100e665970LL),
+      reale(10762711,0xac38fa6376f60LL),reale(83769430,0x6edf90fa38050LL),
+      -reale(460180081,0xa7a2c15d05240LL),reale(445039582,0xb96af8d66e930LL),
+      reale(109020126,0x840edc5d1e420LL),-reale(257005247,0x2ec795996fff0LL),
+      reale(93028106,0x54adfb574be80LL),-reale(52565819,0x1d828e2b6cf10LL),
+      reale(33879206,0x109475f98e8e0LL),-reale(23088279,0x158dbde3c1830LL),
+      reale(15975944,0x7a6ca24c70f40LL),-reale(10806612,0x3c0d699b76f50LL),
+      reale(6721635,0xd5a36326ddda0LL),-reale(3228909,0xe44dc20d06870LL),
+      reale(2345355,0x81bdf10588059LL),reale(4101812237LL,0x723c5cdbe4f41LL),
       // C4[0], coeff of eps^10, polynomial in n of order 19
-      reale(142358LL,0x43f28ef2bce60LL),reale(224104LL,0xc49bf70fb8540LL),
-      reale(374789LL,0x29edb81ed2220LL),reale(679606LL,0x56dce126b3a00LL),
-      reale(0x151577LL,0x3315a15e701e0LL),reale(0x3323adLL,0xe4cb186e3aec0LL),
-      reale(0xaa619bLL,0x295c18ed1d5a0LL),reale(0x532ef77LL,0xbf27e3cc5cb80LL),
-      reale(-0x1cb1b79dLL,0x7ff1b0440560LL),
-      reale(0x1bfc4ae5LL,0x9e18ca33e7840LL),
-      reale(0x69d47e6LL,0x606788cedf920LL),
-      reale(-0x100d6e70LL,0x6f2524df29d00LL),
-      reale(0x5c21a47LL,0x8c213171618e0LL),
-      reale(-0x3378c21LL,0x2af60abab21c0LL),
-      reale(0x209b82fLL,0x9021dc5d4cca0LL),
-      reale(-0x159ac9aLL,0x60746e780ee80LL),
-      reale(0xe38d17LL,0x946e9b2907c60LL),reale(-0x8b2d3dLL,0x9f9832c08eb40LL),
-      reale(0x423e70LL,0x73b562399020LL),reale(0xf7089LL,0x75de66a5bdb46LL),
-      reale(0xf47cb00dLL,0x723c5cdbe4f41LL),
+      reale(142358,0x43f28ef2bce60LL),reale(224104,0xc49bf70fb8540LL),
+      reale(374789,0x29edb81ed2220LL),reale(679606,0x56dce126b3a00LL),
+      reale(1381751,0x3315a15e701e0LL),reale(3351469,0xe4cb186e3aec0LL),
+      reale(11166107,0x295c18ed1d5a0LL),reale(87224183,0xbf27e3cc5cb80LL),
+      -reale(481408924,0xf800e4fbbfaa0LL),reale(469519077,0x9e18ca33e7840LL),
+      reale(110970854,0x606788cedf920LL),-reale(269315695,0x90dadb20d6300LL),
+      reale(96606791,0x8c213171618e0LL),-reale(53972000,0xd509f5454de40LL),
+      reale(34191407,0x9021dc5d4cca0LL),-reale(22654105,0x9f8b9187f1180LL),
+      reale(14912791,0x946e9b2907c60LL),-reale(9121084,0x6067cd3f714c0LL),
+      reale(4341360,0x73b562399020LL),reale(1011849,0x75de66a5bdb46LL),
+      reale(4101812237LL,0x723c5cdbe4f41LL),
       // C4[0], coeff of eps^9, polynomial in n of order 20
-      reale(66631LL,0x784cbdfb1b2c0LL),reale(96606LL,0x3419bb8e05f90LL),
-      reale(145459LL,0xb79bffbfb42e0LL),reale(229589LL,0x824d22506cd30LL),
-      reale(385010LL,0x35e34fd0f4f00LL),reale(700134LL,0x4df5413db48d0LL),
-      reale(0x15c952LL,0x581b23c083b20LL),reale(0x350425LL,0x224df4c0f7670LL),
-      reale(0xb14747LL,0x6c8cba4306b40LL),reale(0x56ec17bLL,0x713d14f45fa10LL),
-      reale(-0x1e26f4d4LL,0x2c26c855c4360LL),
-      reale(0x1db5bbe9LL,0x686859af477b0LL),
-      reale(0x6b4fcd8LL,0x2ca5b0e042780LL),
-      reale(-0x10e6619eLL,0x45b113ee59350LL),
-      reale(0x5fd4fd1LL,0xc424152de7ba0LL),
-      reale(-0x34ad7a3LL,0x73b22b11af0f0LL),
-      reale(0x207fc1bLL,0x322bbe9b9a3c0LL),
-      reale(-0x1487fb7LL,0xd35bb2ecf3490LL),
-      reale(0xc41a61LL,0x7f1d30d5603e0LL),reale(-0x5c2318LL,0x13403f2580230LL),
-      reale(0x41d241LL,0xa0fbedf62e95bLL),
-      reale(0xf47cb00dLL,0x723c5cdbe4f41LL),
+      reale(66631,0x784cbdfb1b2c0LL),reale(96606,0x3419bb8e05f90LL),
+      reale(145459,0xb79bffbfb42e0LL),reale(229589,0x824d22506cd30LL),
+      reale(385010,0x35e34fd0f4f00LL),reale(700134,0x4df5413db48d0LL),
+      reale(1427794,0x581b23c083b20LL),reale(3474469,0x224df4c0f7670LL),
+      reale(11618119,0x6c8cba4306b40LL),reale(91144571,0x713d14f45fa10LL),
+      -reale(505869523,0xd3d937aa3bca0LL),reale(498449385,0x686859af477b0LL),
+      reale(112524504,0x2ca5b0e042780LL),-reale(283533725,0xba4eec11a6cb0LL),
+      reale(100487121,0xc424152de7ba0LL),-reale(55236514,0x8c4dd4ee50f10LL),
+      reale(34077723,0x322bbe9b9a3c0LL),-reale(21528502,0x2ca44d130cb70LL),
+      reale(12851809,0x7f1d30d5603e0LL),-reale(6038295,0xecbfc0da7fdd0LL),
+      reale(4313665,0xa0fbedf62e95bLL),reale(4101812237LL,0x723c5cdbe4f41LL),
       // C4[0], coeff of eps^8, polynomial in n of order 21
-      reale(34939LL,0x4781a8598a880LL),reale(47986LL,0x870a153a0ba00LL),
-      reale(67643LL,0xf93c5a3d5fb80LL),reale(98366LL,0xdef5527b5d100LL),
-      reale(148567LL,0x565e4f7b51e80LL),reale(235242LL,0x766e64b79c800LL),
-      reale(395796LL,0x5614c84bc3180LL),reale(722239LL,0xc9f1a6fcbf00LL),
-      reale(0x168e71LL,0xd3352c2795480LL),reale(0x371b2eLL,0xfdbc40cced600LL),
-      reale(0xb91343LL,0x5ec9e3d72a780LL),reale(0x5b36e2fLL,0xe79e249b02d00LL),
-      reale(-0x1fdb6a55LL,0x9cccd6f164a80LL),
-      reale(0x1fca127cLL,0xd7635e240e400LL),
-      reale(0x6c057abLL,0x31e09daaa5d80LL),
-      reale(-0x11e4686bLL,0x932c79cb11b00LL),
-      reale(0x63c2a77LL,0x6a6e0bd3d0080LL),
-      reale(-0x357e159LL,0x303fff470f200LL),
-      reale(0x1f8d409LL,0x428f85e945380LL),
-      reale(-0x1224cb3LL,0xc015a15e08900LL),
-      reale(0x85cd57LL,0x59c11511e7680LL),reale(0x1de7e7LL,0x57aea52b92dd8LL),
-      reale(0xf47cb00dLL,0x723c5cdbe4f41LL),
+      reale(34939,0x4781a8598a880LL),reale(47986,0x870a153a0ba00LL),
+      reale(67643,0xf93c5a3d5fb80LL),reale(98366,0xdef5527b5d100LL),
+      reale(148567,0x565e4f7b51e80LL),reale(235242,0x766e64b79c800LL),
+      reale(395796,0x5614c84bc3180LL),reale(722239,0xc9f1a6fcbf00LL),
+      reale(1478257,0xd3352c2795480LL),reale(3611438,0xfdbc40cced600LL),
+      reale(12129091,0x5ec9e3d72a780LL),reale(95645231,0xe79e249b02d00LL),
+      -reale(534473300,0x6333290e9b580LL),reale(533336700,0xd7635e240e400LL),
+      reale(113268651,0x31e09daaa5d80LL),-reale(300181610,0x6cd38634ee500LL),
+      reale(104606327,0x6a6e0bd3d0080LL),-reale(56090968,0xcfc000b8f0e00LL),
+      reale(33084425,0x428f85e945380LL),-reale(19025074,0x3fea5ea1f7700LL),
+      reale(8768855,0x59c11511e7680LL),reale(1959911,0x57aea52b92dd8LL),
+      reale(4101812237LL,0x723c5cdbe4f41LL),
       // C4[0], coeff of eps^7, polynomial in n of order 22
-      reale(19712LL,0xac93bc6991f60LL),reale(26064LL,0x47e63bb6f7b10LL),
-      reale(35129LL,0x85349dd791940LL),reale(48412LL,0xcf2b50a5e4170LL),
-      reale(68486LL,0xf23457a2e7b20LL),reale(99959LL,0x1aee9379bdd0LL),
-      reale(151547LL,0xc976e86422100LL),reale(240911LL,0x67a8290f88c30LL),
-      reale(407002LL,0x79f859786e6e0LL),reale(745880LL,0xf6e3b80f24890LL),
-      reale(0x176681LL,0xcfffb4a9fa8c0LL),reale(0x397247LL,0xab1a08cbd8ef0LL),
-      reale(0xc1fa29LL,0x4098eb8542a0LL),reale(0x6035f67LL,0x9a754746dfb50LL),
-      reale(-0x21e32f8aLL,0x4337d0a4c9080LL),
-      reale(0x225ca643LL,0x10ca042b229b0LL),
-      reale(0x6b2fa73LL,0xaecaa4a6c6e60LL),
-      reale(-0x131280c1LL,0x1fa1b551b610LL),
-      reale(0x67b126eLL,0x9b1cd9ac3b840LL),
-      reale(-0x3550ad7LL,0x14175e8b3c70LL),
-      reale(0x1cc2f87LL,0xd0df7149f4a20LL),
-      reale(-0xcdba47LL,0xd35d50b9258d0LL),reale(0x8df89eLL,0x6328f1d67a7f5LL),
-      reale(0xf47cb00dLL,0x723c5cdbe4f41LL),
+      reale(19712,0xac93bc6991f60LL),reale(26064,0x47e63bb6f7b10LL),
+      reale(35129,0x85349dd791940LL),reale(48412,0xcf2b50a5e4170LL),
+      reale(68486,0xf23457a2e7b20LL),reale(99959,0x1aee9379bdd0LL),
+      reale(151547,0xc976e86422100LL),reale(240911,0x67a8290f88c30LL),
+      reale(407002,0x79f859786e6e0LL),reale(745880,0xf6e3b80f24890LL),
+      reale(1533569,0xcfffb4a9fa8c0LL),reale(3764807,0xab1a08cbd8ef0LL),
+      reale(12712489,0x4098eb8542a0LL),reale(100884327,0x9a754746dfb50LL),
+      -reale(568536969,0xbcc82f5b36f80LL),reale(576497219,0x10ca042b229b0LL),
+      reale(112392819,0xaecaa4a6c6e60LL),-reale(319979712,0xfe05e4aae49f0LL),
+      reale(108728942,0x9b1cd9ac3b840LL),-reale(55904982,0xfebe8a174c390LL),
+      reale(30158727,0xd0df7149f4a20LL),-reale(13482566,0x2ca2af46da730LL),
+      reale(9304222,0x6328f1d67a7f5LL),reale(4101812237LL,0x723c5cdbe4f41LL),
       // C4[0], coeff of eps^6, polynomial in n of order 23
-      reale(11639LL,0x4298ebe4bc020LL),reale(14966LL,0xe9089607c0a40LL),
-      reale(19534LL,0x1996a62965260LL),reale(25928LL,0xdcaffa7bfcb80LL),
-      reale(35089LL,0x59fa64f7d88a0LL),reale(48563LL,0x32ed377221cc0LL),
-      reale(69004LL,0xe5c9403173ae0LL),reale(101181LL,0xf483b00105600LL),
-      reale(154143LL,0xf39432e434120LL),reale(246274LL,0xfc90899a3cf40LL),
-      reale(418255LL,0xdad9486cf7360LL),reale(770731LL,0xbf0321b55e080LL),
-      reale(0x185215LL,0xd61fe95ba9a0LL),reale(0x3c13b0LL,0x3820413b3e1c0LL),
-      reale(0xcc40bfLL,0xf48ca237dbbe0LL),reale(0x662046cLL,0x9d1b10f932b00LL),
-      reale(-0x245c984cLL,0x93e4d8ea58220LL),
-      reale(0x25a711c0LL,0xcac1d46451440LL),
-      reale(0x672d055LL,0xaf9fd1440d460LL),
-      reale(-0x147fa21bLL,0xfc84c3f4af580LL),
-      reale(0x6aea843LL,0x3a73d439f8aa0LL),
-      reale(-0x3292518LL,0xea2e8660a26c0LL),
-      reale(0x156a084LL,0x49a70d2177ce0LL),reale(0x457938LL,0x22f700960daaaLL),
-      reale(0xf47cb00dLL,0x723c5cdbe4f41LL),
+      reale(11639,0x4298ebe4bc020LL),reale(14966,0xe9089607c0a40LL),
+      reale(19534,0x1996a62965260LL),reale(25928,0xdcaffa7bfcb80LL),
+      reale(35089,0x59fa64f7d88a0LL),reale(48563,0x32ed377221cc0LL),
+      reale(69004,0xe5c9403173ae0LL),reale(101181,0xf483b00105600LL),
+      reale(154143,0xf39432e434120LL),reale(246274,0xfc90899a3cf40LL),
+      reale(418255,0xdad9486cf7360LL),reale(770731,0xbf0321b55e080LL),
+      reale(1593877,0xd61fe95ba9a0LL),reale(3937200,0x3820413b3e1c0LL),
+      reale(13385919,0xf48ca237dbbe0LL),reale(107086956,0x9d1b10f932b00LL),
+      -reale(610048075,0x6c1b2715a7de0LL),reale(631706048,0xcac1d46451440LL),
+      reale(108187733,0xaf9fd1440d460LL),-reale(343908890,0x37b3c0b50a80LL),
+      reale(112109635,0x3a73d439f8aa0LL),-reale(53028119,0x15d1799f5d940LL),
+      reale(22454404,0x49a70d2177ce0LL),reale(4553016,0x22f700960daaaLL),
+      reale(4101812237LL,0x723c5cdbe4f41LL),
       // C4[0], coeff of eps^5, polynomial in n of order 24
-      reale(7030LL,0x634f92bbfec80LL),reale(8852LL,0x183ea9c784b10LL),
-      reale(11280LL,0x864427e0ea420LL),reale(14569LL,0x4ed71f4155e30LL),
-      reale(19103LL,0x13b2c1ad2ffc0LL),reale(25480LL,0x35983eb20bf50LL),
-      reale(34659LL,0x18ad59c5f9360LL),reale(48227LL,0x95f2c0574270LL),
-      reale(68917LL,0x8c5b3ac32f300LL),reale(101660LL,0x272f49f96bb90LL),
-      reale(155850LL,0xbc628b339b2a0LL),reale(250657LL,0x122490d07feb0LL),
-      reale(428675LL,0x21f5a97506640LL),reale(795748LL,0x8d9dd2ee8dfd0LL),
-      reale(0x194e34LL,0x22b44d2c5a1e0LL),reale(0x3f078eLL,0x814b60cb632f0LL),
-      reale(0xd83f56LL,0xb8691b29bf980LL),reale(0x6d46e98LL,0x7599d8275cc10LL),
-      reale(-0x27781128LL,0xaa3ee984c0120LL),
-      reale(0x2a0ea364LL,0xf6219ee07f30LL),
-      reale(0x5c2da08LL,0xe42cfbbc64cc0LL),
-      reale(-0x163dd11bLL,0x272a56b2c2050LL),
-      reale(0x6b12295LL,0x704341a757060LL),
-      reale(-0x284b6d6LL,0x40a56b3358370LL),
-      reale(0x19455f9LL,0xea37274059c77LL),
-      reale(0xf47cb00dLL,0x723c5cdbe4f41LL),
+      reale(7030,0x634f92bbfec80LL),reale(8852,0x183ea9c784b10LL),
+      reale(11280,0x864427e0ea420LL),reale(14569,0x4ed71f4155e30LL),
+      reale(19103,0x13b2c1ad2ffc0LL),reale(25480,0x35983eb20bf50LL),
+      reale(34659,0x18ad59c5f9360LL),reale(48227,0x95f2c0574270LL),
+      reale(68917,0x8c5b3ac32f300LL),reale(101660,0x272f49f96bb90LL),
+      reale(155850,0xbc628b339b2a0LL),reale(250657,0x122490d07feb0LL),
+      reale(428675,0x21f5a97506640LL),reale(795748,0x8d9dd2ee8dfd0LL),
+      reale(1658420,0x22b44d2c5a1e0LL),reale(4130702,0x814b60cb632f0LL),
+      reale(14171990,0xb8691b29bf980LL),reale(114585240,0x7599d8275cc10LL),
+      -reale(662180135,0x55c1167b3fee0LL),reale(705602404,0xf6219ee07f30LL),
+      reale(96655880,0xe42cfbbc64cc0LL),-reale(373149978,0xd8d5a94d3dfb0LL),
+      reale(112272021,0x704341a757060LL),-reale(42251989,0xbf5a94cca7c90LL),
+      reale(26498553,0xea37274059c77LL),reale(4101812237LL,0x723c5cdbe4f41LL),
       // C4[0], coeff of eps^4, polynomial in n of order 25
-      reale(4244LL,0x3972351df5940LL),reale(5257LL,0xaa8f87b5d5600LL),
-      reale(6578LL,0xed6cb3b3fa2c0LL),reale(8324LL,0xb4008d853180LL),
-      reale(10662LL,0x703b07259b440LL),reale(13846LL,0x8f2f6ca125d00LL),
-      reale(18261LL,0x3a455b4269dc0LL),reale(24508LL,0x5045fb81ae880LL),
-      reale(33557LL,0x1b3e945f36f40LL),reale(47022LL,0x9499ec44e400LL),
-      reale(67699LL,0x7a940285938c0LL),reale(100662LL,0x403646e1e5f80LL),
-      reale(155637LL,0xf20897fb50a40LL),reale(252593LL,0x7106d86756b00LL),
-      reale(436178LL,0xe720d891ff3c0LL),reale(818051LL,0x1d79595b01680LL),
-      reale(0x1a4d3aLL,0xc365c92e70540LL),reale(0x424929LL,0xb055b91247200LL),
-      reale(0xe65c40LL,0xe96c54f834ec0LL),reale(0x762650fLL,0x435c586708d80LL),
-      reale(-0x2b88f1fbLL,0x72f827a11e040LL),
-      reale(0x3058f88aLL,0xd7ccf03d27900LL),
-      reale(0x3fc08ddLL,0xdd39a234bc9c0LL),
-      reale(-0x1850d3a6LL,0x298c984804480LL),
-      reale(0x5e7be5fLL,0x21cb91dfe1b40LL),reale(0xd8c1e2LL,0x589c3f44ce7acLL),
-      reale(0xf47cb00dLL,0x723c5cdbe4f41LL),
+      reale(4244,0x3972351df5940LL),reale(5257,0xaa8f87b5d5600LL),
+      reale(6578,0xed6cb3b3fa2c0LL),reale(8324,0xb4008d853180LL),
+      reale(10662,0x703b07259b440LL),reale(13846,0x8f2f6ca125d00LL),
+      reale(18261,0x3a455b4269dc0LL),reale(24508,0x5045fb81ae880LL),
+      reale(33557,0x1b3e945f36f40LL),reale(47022,0x9499ec44e400LL),
+      reale(67699,0x7a940285938c0LL),reale(100662,0x403646e1e5f80LL),
+      reale(155637,0xf20897fb50a40LL),reale(252593,0x7106d86756b00LL),
+      reale(436178,0xe720d891ff3c0LL),reale(818051,0x1d79595b01680LL),
+      reale(1723706,0xc365c92e70540LL),reale(4344105,0xb055b91247200LL),
+      reale(15096896,0xe96c54f834ec0LL),reale(123888911,0x435c586708d80LL),
+      -reale(730395130,0x8d07d85ee1fc0LL),reale(811137162,0xd7ccf03d27900LL),
+      reale(66848989,0xdd39a234bc9c0LL),-reale(407950245,0xd67367b7fbb80LL),
+      reale(99073631,0x21cb91dfe1b40LL),reale(14205410,0x589c3f44ce7acLL),
+      reale(4101812237LL,0x723c5cdbe4f41LL),
       // C4[0], coeff of eps^3, polynomial in n of order 26
-      reale(2481LL,0x8d2c27b46b620LL),reale(3034LL,0xe44720f3fdf90LL),
-      reale(3743LL,0xf82fc54a92780LL),reale(4662LL,0xb922ac44f6b70LL),
-      reale(5867LL,0xae02c805f08e0LL),reale(7469LL,0x40a687e9b4d50LL),
-      reale(9629LL,0xbb2099bca6640LL),reale(12592LL,0xa0727e14e5130LL),
-      reale(16731LL,0xdc4cfea134ba0LL),reale(22636LL,0xbf84f9dc44310LL),
-      reale(31263LL,0xfe99294d5c500LL),reale(44220LL,0x78f2e666feef0LL),
-      reale(64313LL,0xe77c1f84fde60LL),reale(96684LL,0x43c9282e120d0LL),
-      reale(151281LL,0x84eb0984fa3c0LL),reale(248729LL,0xa2c4a502aa4b0LL),
-      reale(435615LL,0xd80deb212120LL),reale(829647LL,0x194fc60e84690LL),
-      reale(0x1b1fd3LL,0x17dfea7bc6280LL),reale(0x459d83LL,0x417bb8824d270LL),
-      reale(0xf6d16eLL,0xd3a7db47373e0LL),reale(0x8183649LL,0xbb999e2601450LL),
-      reale(-0x312ee39aLL,0x57e9d33606140LL),
-      reale(0x3a455a48LL,0xd8c5ee7f4d830LL),
-      reale(-0x1373dc9LL,0xb547079d336a0LL),
-      reale(-0x19f739c8LL,0xd486bc1eea10LL),
-      reale(0x889a2ffLL,0xa8277df5ccab1LL),
-      reale(0xf47cb00dLL,0x723c5cdbe4f41LL),
+      reale(2481,0x8d2c27b46b620LL),reale(3034,0xe44720f3fdf90LL),
+      reale(3743,0xf82fc54a92780LL),reale(4662,0xb922ac44f6b70LL),
+      reale(5867,0xae02c805f08e0LL),reale(7469,0x40a687e9b4d50LL),
+      reale(9629,0xbb2099bca6640LL),reale(12592,0xa0727e14e5130LL),
+      reale(16731,0xdc4cfea134ba0LL),reale(22636,0xbf84f9dc44310LL),
+      reale(31263,0xfe99294d5c500LL),reale(44220,0x78f2e666feef0LL),
+      reale(64313,0xe77c1f84fde60LL),reale(96684,0x43c9282e120d0LL),
+      reale(151281,0x84eb0984fa3c0LL),reale(248729,0xa2c4a502aa4b0LL),
+      reale(435615,0xd80deb212120LL),reale(829647,0x194fc60e84690LL),
+      reale(1777619,0x17dfea7bc6280LL),reale(4562307,0x417bb8824d270LL),
+      reale(16175470,0xd3a7db47373e0LL),reale(135804489,0xbb999e2601450LL),
+      -reale(825156505,0xa8162cc9f9ec0LL),reale(977623624,0xd8c5ee7f4d830LL),
+      -reale(20397512,0x4ab8f862cc960LL),-reale(435632583,0xf2b7943e115f0LL),
+      reale(143237887,0xa8277df5ccab1LL),reale(4101812237LL,0x723c5cdbe4f41LL),
       // C4[0], coeff of eps^2, polynomial in n of order 27
       real(0x52cac993243497e0LL),real(0x6437dfaee57b9d40LL),
-      real(0x7a3f9cad4d2f48a0LL),reale(2405LL,0xee01eec3f2b00LL),
-      reale(2986LL,0x65a22988df560LL),reale(3743LL,0xe8ba104bd58c0LL),
-      reale(4745LL,0x82561551e620LL),reale(6086LL,0xa7581d3ddee80LL),
-      reale(7912LL,0x8561dfdd262e0LL),reale(10440LL,0x7aa2aab74b440LL),
-      reale(14008LL,0x9b1a2c148b3a0LL),reale(19155LL,0xcd3b8407d7200LL),
-      reale(26767LL,0x9792b4f9c2060LL),reale(38350LL,0xb50c17257efc0LL),
-      reale(56574LL,0xaf828f4edf120LL),reale(86399LL,0xb1bc40483f580LL),
-      reale(137581LL,0x7d29442656de0LL),reale(230687LL,0xc9059cc5d4b40LL),
-      reale(413025LL,0xcba5d91bbdea0LL),reale(806439LL,0xbad85d457b900LL),
-      reale(0x1b1e4aLL,0xdb254a1088b60LL),reale(0x47db50LL,0x187f6563b06c0LL),
-      reale(0x10829aeLL,0x4c53d944cbc20LL),reale(0x9081419LL,0x682a2ddefc80LL),
-      reale(-0x39d631f0LL,0xf8c545a3fb8e0LL),
-      reale(0x4cc4aad4LL,0xb756685e76240LL),
-      reale(-0x18d63745LL,0x2e18c01dac9a0LL),
-      reale(-0x4a82a5dLL,0x18a4a405905ceLL),
-      reale(0xf47cb00dLL,0x723c5cdbe4f41LL),
+      real(0x7a3f9cad4d2f48a0LL),reale(2405,0xee01eec3f2b00LL),
+      reale(2986,0x65a22988df560LL),reale(3743,0xe8ba104bd58c0LL),
+      reale(4745,0x82561551e620LL),reale(6086,0xa7581d3ddee80LL),
+      reale(7912,0x8561dfdd262e0LL),reale(10440,0x7aa2aab74b440LL),
+      reale(14008,0x9b1a2c148b3a0LL),reale(19155,0xcd3b8407d7200LL),
+      reale(26767,0x9792b4f9c2060LL),reale(38350,0xb50c17257efc0LL),
+      reale(56574,0xaf828f4edf120LL),reale(86399,0xb1bc40483f580LL),
+      reale(137581,0x7d29442656de0LL),reale(230687,0xc9059cc5d4b40LL),
+      reale(413025,0xcba5d91bbdea0LL),reale(806439,0xbad85d457b900LL),
+      reale(1777226,0xdb254a1088b60LL),reale(4709200,0x187f6563b06c0LL),
+      reale(17312174,0x4c53d944cbc20LL),reale(151524377,0x682a2ddefc80LL),
+      -reale(970338799,0x73aba5c04720LL),reale(1287957204,0xb756685e76240LL),
+      -reale(416692036,0xd1e73fe253660LL),-reale(78129756,0xe75b5bfa6fa32LL),
+      reale(4101812237LL,0x723c5cdbe4f41LL),
       // C4[0], coeff of eps^1, polynomial in n of order 28
       real(0xb4c355cd41c92c0LL),real(0xd8fea3a41cc7830LL),
       real(0x1064f0c6b9a6ad20LL),real(0x13f7a88902ef1b10LL),
       real(0x1884a414973fcb80LL),real(0x1e5fa2ae5243d7f0LL),
       real(0x25fe0bb384ddd9e0LL),real(0x3006f6e3e0e25ad0LL),
       real(0x3d6c2c13c34ec440LL),real(0x4f91f34825bd4fb0LL),
-      real(0x688ffb74f98676a0LL),reale(2233LL,0xdec33bb086290LL),
-      reale(3036LL,0xe53843c2cdd00LL),reale(4213LL,0xb13e1137e3f70LL),
-      reale(5984LL,0xaa1cca8abe360LL),reale(8732LL,0xb9880d6c69250LL),
-      reale(13152LL,0x1eadcfcfd75c0LL),reale(20566LL,0x4e1752c3c0730LL),
-      reale(33653LL,0xf4262a5798020LL),reale(58247LL,0x3a420e3524a10LL),
-      reale(108257LL,0x7934f39e3ee80LL),reale(221025LL,0xaccc1c0dc06f0LL),
-      reale(514222LL,0xffbb852faace0LL),reale(0x163b45LL,0x29e8a4070e9d0LL),
-      reale(0x58ed14LL,0xa7a2901c3a740LL),reale(0x3630789LL,0x6270fd1339eb0LL),
-      reale(-0x18d63745LL,0x2e18c01dac9a0LL),
-      reale(0x254152e7LL,0x3adadfd37d190LL),
-      reale(-0x104c9446LL,0xd6403e1379451LL),
-      reale(0x517ee559LL,0xd0bec99ea1a6bLL),
+      real(0x688ffb74f98676a0LL),reale(2233,0xdec33bb086290LL),
+      reale(3036,0xe53843c2cdd00LL),reale(4213,0xb13e1137e3f70LL),
+      reale(5984,0xaa1cca8abe360LL),reale(8732,0xb9880d6c69250LL),
+      reale(13152,0x1eadcfcfd75c0LL),reale(20566,0x4e1752c3c0730LL),
+      reale(33653,0xf4262a5798020LL),reale(58247,0x3a420e3524a10LL),
+      reale(108257,0x7934f39e3ee80LL),reale(221025,0xaccc1c0dc06f0LL),
+      reale(514222,0xffbb852faace0LL),reale(1456965,0x29e8a4070e9d0LL),
+      reale(5827860,0xa7a2901c3a740LL),reale(56821641,0x6270fd1339eb0LL),
+      -reale(416692036,0xd1e73fe253660LL),reale(625038055,0x3adadfd37d190LL),
+      -reale(273454149,0x29bfc1ec86bafLL),reale(1367270745,0xd0bec99ea1a6bLL),
       // C4[0], coeff of eps^0, polynomial in n of order 29
-      reale(42171LL,0xbca3d5a569b4LL),reale(46862LL,0xd0a41cdef9cf0LL),
-      reale(52277LL,0xa2d5316ac1b2cLL),reale(58560LL,0x6f94d669a7a28LL),
-      reale(65892LL,0x788629d238da4LL),reale(74502LL,0x6b99bdf690d60LL),
-      reale(84681LL,0x87b277eadbb1cLL),reale(96804LL,0x8c76c6701c898LL),
-      reale(111359LL,0x1427f62cd3d94LL),reale(128987LL,0x59921e2221dd0LL),
-      reale(150546LL,0xaa0136eb20f0cLL),reale(177198LL,0x7742592373f08LL),
-      reale(210542LL,0x4360b9bd64984LL),reale(252821LL,0x8a8c09196de40LL),
-      reale(307248LL,0x66986780ae6fcLL),reale(378530LL,0x79d0ac77ed78LL),
-      reale(473750LL,0x5114d83948174LL),reale(603901LL,0x80acdb5cb5eb0LL),
-      reale(786661LL,0x2afc1dbf812ecLL),reale(0x100c26LL,0xda8ab314e3e8LL),
-      reale(0x16253eLL,0xc0ede2017b564LL),reale(0x1fcc74LL,0x5d3b51a63af20LL),
-      reale(0x300f2fLL,0xde5c8fc3f62dcLL),reale(0x4dcf72LL,0x12ae3e18b3258LL),
-      reale(0x8af270LL,0x45ee012c1b554LL),reale(0x1210283LL,0x20d0545bbdf90LL),
-      reale(0x31ac6e8LL,0x9a3ce7fc4a6ccLL),
-      reale(0x12a0a973LL,0x9d6d6fe9be8c8LL),
-      reale(-0x41325115LL,0x5900f84de5144LL),
-      reale(0xa2fdcab3LL,0xa17d933d434d6LL),
-      reale(0xf47cb00dLL,0x723c5cdbe4f41LL),
+      reale(42171,0xbca3d5a569b4LL),reale(46862,0xd0a41cdef9cf0LL),
+      reale(52277,0xa2d5316ac1b2cLL),reale(58560,0x6f94d669a7a28LL),
+      reale(65892,0x788629d238da4LL),reale(74502,0x6b99bdf690d60LL),
+      reale(84681,0x87b277eadbb1cLL),reale(96804,0x8c76c6701c898LL),
+      reale(111359,0x1427f62cd3d94LL),reale(128987,0x59921e2221dd0LL),
+      reale(150546,0xaa0136eb20f0cLL),reale(177198,0x7742592373f08LL),
+      reale(210542,0x4360b9bd64984LL),reale(252821,0x8a8c09196de40LL),
+      reale(307248,0x66986780ae6fcLL),reale(378530,0x79d0ac77ed78LL),
+      reale(473750,0x5114d83948174LL),reale(603901,0x80acdb5cb5eb0LL),
+      reale(786661,0x2afc1dbf812ecLL),reale(1051686,0xda8ab314e3e8LL),
+      reale(1451326,0xc0ede2017b564LL),reale(2083956,0x5d3b51a63af20LL),
+      reale(3149615,0xde5c8fc3f62dcLL),reale(5099378,0x12ae3e18b3258LL),
+      reale(9106032,0x45ee012c1b554LL),reale(18940547,0x20d0545bbdf90LL),
+      reale(52086504,0x9a3ce7fc4a6ccLL),reale(312519027,0x9d6d6fe9be8c8LL),
+      -reale(1093816596,0xa6ff07b21aebcLL),
+      reale(2734541491LL,0xa17d933d434d6LL),
+      reale(4101812237LL,0x723c5cdbe4f41LL),
       // C4[1], coeff of eps^29, polynomial in n of order 0
-      real(917561LL),real(0x3fc3dd0781LL),
+      917561,real(273868982145LL),
       // C4[1], coeff of eps^28, polynomial in n of order 1
-      -real(0x7815280LL),real(0x564fffcLL),real(0x73d4d30e25bLL),
+      -real(125915776),real(90505212),real(0x73d4d30e25bLL),
       // C4[1], coeff of eps^27, polynomial in n of order 2
-      -real(0x2f7e4f2fca0LL),real(0x161b06db8f0LL),real(0x5852679557LL),
+      -real(0x2f7e4f2fca0LL),real(0x161b06db8f0LL),real(379339642199LL),
       real(0x145a25f15d59339LL),
       // C4[1], coeff of eps^26, polynomial in n of order 3
       -real(0x780f9f651c0LL),real(0x49cd6538080LL),-real(0x275396e6f40LL),
@@ -4444,607 +4342,481 @@ namespace GeographicLib {
       // C4[1], coeff of eps^25, polynomial in n of order 4
       -real(0x226e68a74f6c2c0LL),real(0x178fbd94c6e4130LL),
       -real(0x10bafa7048ffb60LL),real(0x7b204e43552d10LL),
-      real(0x1ebd785c76c649LL),reale(369943LL,0xaebaf6655156dLL),
+      real(0x1ebd785c76c649LL),reale(369943,0xaebaf6655156dLL),
       // C4[1], coeff of eps^24, polynomial in n of order 5
       -real(0x26adfa4c2bcf8500LL),real(0x1be7e116f09bc400LL),
       -real(0x1641521374362300LL),real(0xd7dd4a2b1831200LL),
       -real(0x7449d087ac65100LL),real(0x525502d56a2a1d8LL),
-      reale(0x459eceLL,0xc0573436eb2ebLL),
+      reale(4562638,0xc0573436eb2ebLL),
       // C4[1], coeff of eps^23, polynomial in n of order 6
-      reale(-27300LL,0xe18051b90d520LL),reale(20250LL,0xb050f61211530LL),
-      reale(-17171LL,0xe335304bf84c0LL),reale(11560LL,0x5557506ac7a50LL),
-      reale(-8301LL,0xe11e2013f0c60LL),reale(3760LL,0xc5da39149a170LL),
-      real(0x3aaaad07e2dbe15fLL),reale(0x86e3b09LL,0x4a8f52a67aa75LL),
+      -reale(27299,0x1e7fae46f2ae0LL),reale(20250,0xb050f61211530LL),
+      -reale(17170,0x1ccacfb407b40LL),reale(11560,0x5557506ac7a50LL),
+      -reale(8300,0x1ee1dfec0f3a0LL),reale(3760,0xc5da39149a170LL),
+      real(0x3aaaad07e2dbe15fLL),reale(141441801,0x4a8f52a67aa75LL),
       // C4[1], coeff of eps^22, polynomial in n of order 7
-      reale(-223721LL,0x5258f2178e240LL),reale(168212LL,0x95f7a36b8e780LL),
-      reale(-147709LL,0xb9c628ebecec0LL),reale(104570LL,0x398040c96dd00LL),
-      reale(-84305LL,0xd835d01d0d740LL),reale(50205LL,0xd862a9f308280LL),
-      reale(-27427LL,0x4181f76ca23c0LL),reale(19210LL,0x9794de13dcf52LL),
-      reale(0x30e5bccfLL,0x7d3f45c59430dLL),
+      -reale(223720,0xada70de871dc0LL),reale(168212,0x95f7a36b8e780LL),
+      -reale(147708,0x4639d71413140LL),reale(104570,0x398040c96dd00LL),
+      -reale(84304,0x27ca2fe2f28c0LL),reale(50205,0xd862a9f308280LL),
+      -reale(27426,0xbe7e08935dc40LL),reale(19210,0x9794de13dcf52LL),
+      reale(820362447,0x7d3f45c59430dLL),
       // C4[1], coeff of eps^21, polynomial in n of order 8
-      reale(-0x184705LL,0xbaef75047f680LL),reale(0x125255LL,0xfaaefe8d2aff0LL),
-      reale(-0x1063bfLL,0xdbb4e733e02e0LL),reale(779463LL,0x6e55e2794e4d0LL),
-      reale(-667444LL,0x80d8c24af2b40LL),reale(440073LL,0xbd38cdf5ffbb0LL),
-      reale(-320491LL,0x4f6fd43f9bba0LL),reale(142410LL,0x1eb038cc00090LL),
-      reale(35531LL,0x5cce3f7afbb81LL),reale(0xf47cb00dLL,0x723c5cdbe4f41LL),
+      -reale(1591044,0x45108afb80980LL),reale(1200725,0xfaaefe8d2aff0LL),
+      -reale(1074110,0x244b18cc1fd20LL),reale(779463,0x6e55e2794e4d0LL),
+      -reale(667443,0x7f273db50d4c0LL),reale(440073,0xbd38cdf5ffbb0LL),
+      -reale(320490,0xb0902bc064460LL),reale(142410,0x1eb038cc00090LL),
+      reale(35531,0x5cce3f7afbb81LL),reale(4101812237LL,0x723c5cdbe4f41LL),
       // C4[1], coeff of eps^20, polynomial in n of order 9
-      reale(-0x69c69cLL,0xa63944a9080LL),reale(0x4f76d4LL,0x9d4c81592dc00LL),
-      reale(-0x4771c3LL,0x210630fab5780LL),reale(0x345bb6LL,0xdcd7f0ab97d00LL),
-      reale(-0x2e5455LL,0x14687e301c680LL),reale(0x200137LL,0x35c6f48ae00LL),
-      reale(-0x1a294cLL,0x54bab8747ad80LL),reale(997568LL,0xe75b4df283f00LL),
-      reale(-555002LL,0xca908d5b6dc80LL),reale(383325LL,0x3033ad4799914LL),
-      reale(0x2dd761028LL,0x56b51693aedc3LL),
+      -reale(6932123,0xff59c6bb56f80LL),reale(5207764,0x9d4c81592dc00LL),
+      -reale(4682178,0xdef9cf054a880LL),reale(3431350,0xdcd7f0ab97d00LL),
+      -reale(3036244,0xeb9781cfe3980LL),reale(2097463,0x35c6f48ae00LL),
+      -reale(1714507,0xab45478b85280LL),reale(997568,0xe75b4df283f00LL),
+      -reale(555001,0x356f72a492380LL),reale(383325,0x3033ad4799914LL),
+      reale(12305436712LL,0x56b51693aedc3LL),
       // C4[1], coeff of eps^19, polynomial in n of order 10
-      reale(-0x9fd70bLL,0x7f1c067b14aa0LL),reale(0x766e0aLL,0x6cb2d37d31d50LL),
-      reale(-0x697adaLL,0xfda8b47ab7080LL),reale(0x4d39c0LL,0xbff13b9f8e7b0LL),
-      reale(-0x454f1bLL,0x637a9e07aa660LL),reale(0x30df9aLL,0x45874de1c0010LL),
-      reale(-0x2a5d4cLL,0xffdcce166a840LL),reale(0x1b2c49LL,0x24244086de270LL),
-      reale(-0x14295dLL,0x482bbfb553220LL),reale(572110LL,0xf0d923e3d0ad0LL),
-      reale(142666LL,0x15ad08c690505LL),reale(0x2dd761028LL,0x56b51693aedc3LL),
+      -reale(10475274,0x80e3f984eb560LL),reale(7761418,0x6cb2d37d31d50LL),
+      -reale(6912729,0x2574b8548f80LL),reale(5061056,0xbff13b9f8e7b0LL),
+      -reale(4542234,0x9c8561f8559a0LL),reale(3202970,0x45874de1c0010LL),
+      -reale(2776395,0x2331e9957c0LL),reale(1780809,0x24244086de270LL),
+      -reale(1321308,0xb7d4404aacde0LL),reale(572110,0xf0d923e3d0ad0LL),
+      reale(142666,0x15ad08c690505LL),reale(12305436712LL,0x56b51693aedc3LL),
       // C4[1], coeff of eps^18, polynomial in n of order 11
-      reale(-0x1034534LL,0xc405c56ad5a40LL),
-      reale(0xbaa7b6LL,0xc216625651e80LL),reale(-0xa17973LL,0x357b3fbb388c0LL),
-      reale(0x74e090LL,0x22fef68736200LL),reale(-0x688f11LL,0x40b466cfaf340LL),
-      reale(0x4a13daLL,0x78ae9dfa88580LL),reale(-0x421a5dLL,0xa7af3ee26e1c0LL),
-      reale(0x2c33dbLL,0x8330e6242d100LL),reale(-0x24c91aLL,0xc3b1b4d8a9c40LL),
-      reale(0x14bed6LL,0x6f5bc7e308c80LL),reale(-775170LL,0x8fa57bc96ac0LL),
-      reale(525423LL,0x9fd72933d2d3aLL),reale(0x2dd761028LL,0x56b51693aedc3LL),
+      -reale(16991539,0x3bfa3a952a5c0LL),reale(12232630,0xc216625651e80LL),
+      -reale(10582386,0xca84c044c7740LL),reale(7659664,0x22fef68736200LL),
+      -reale(6852368,0xbf4b993050cc0LL),reale(4854746,0x78ae9dfa88580LL),
+      -reale(4332124,0x5850c11d91e40LL),reale(2896859,0x8330e6242d100LL),
+      -reale(2410777,0x3c4e4b27563c0LL),reale(1359574,0x6f5bc7e308c80LL),
+      -reale(775169,0xf705a84369540LL),reale(525423,0x9fd72933d2d3aLL),
+      reale(12305436712LL,0x56b51693aedc3LL),
       // C4[1], coeff of eps^17, polynomial in n of order 12
-      reale(-0x1e24384LL,0x64d59dbaed640LL),
-      reale(0x145c2e7LL,0xec111ef51efd0LL),
-      reale(-0x108a397LL,0x394a627ab09e0LL),reale(0xba89acLL,0xad54b9902f0LL),
-      reale(-0xa2bd3cLL,0x34d362ea79980LL),reale(0x725efbLL,0x2bbe593f97c10LL),
-      reale(-0x66b513LL,0xa42eeb676d920LL),reale(0x45b201LL,0xbb95797dfef30LL),
-      reale(-0x3d5447LL,0xf1e804c231cc0LL),reale(0x25e556LL,0x18261977df050LL),
-      reale(-0x1cd4a6LL,0xdad5c47c0b860LL),reale(789608LL,0x3727b34041370LL),
-      reale(196748LL,0x5030b26b63d7fLL),reale(0x2dd761028LL,0x56b51693aedc3LL),
+      -reale(31605635,0x9b2a6245129c0LL),reale(21349095,0xec111ef51efd0LL),
+      -reale(17343382,0xc6b59d854f620LL),reale(12224940,0xad54b9902f0LL),
+      -reale(10665275,0xcb2c9d1586680LL),reale(7495419,0x2bbe593f97c10LL),
+      -reale(6731026,0x5bd11498926e0LL),reale(4567553,0xbb95797dfef30LL),
+      -reale(4019270,0xe17fb3dce340LL),reale(2483542,0x18261977df050LL),
+      -reale(1889445,0x252a3b83f47a0LL),reale(789608,0x3727b34041370LL),
+      reale(196748,0x5030b26b63d7fLL),reale(12305436712LL,0x56b51693aedc3LL),
       // C4[1], coeff of eps^16, polynomial in n of order 13
-      reale(-0x4fc6b00LL,0x820ca48963200LL),
-      reale(0x2c0b360LL,0x6a662d0fec800LL),
-      reale(-0x1f04678LL,0xf40bb5c19fe00LL),
-      reale(0x14938faLL,0xbd1dba7599c00LL),
-      reale(-0x10e2e1eLL,0x24347398b6a00LL),
-      reale(0xb96b4fLL,0x7c587583d3000LL),reale(-0xa36311LL,0x5867f9190b600LL),
-      reale(0x6e8d73LL,0x8aa6d7e27c400LL),reale(-0x63715bLL,0x600d3b9d02200LL),
-      reale(0x3f9bdfLL,0x7a21919979800LL),reale(-0x3632afLL,0xd9fb83aefee00LL),
-      reale(0x1d4599LL,0x786d4fd8aec00LL),reale(-0x1143f8LL,0x8185d98965a00LL),
-      reale(747310LL,0xbb693903a2f10LL),reale(0x2dd761028LL,0x56b51693aedc3LL),
+      -reale(83651327,0x7df35b769ce00LL),reale(46183264,0x6a662d0fec800LL),
+      -reale(32523895,0xbf44a3e60200LL),reale(21575930,0xbd1dba7599c00LL),
+      -reale(17706525,0xdbcb8c6749600LL),reale(12151631,0x7c587583d3000LL),
+      -reale(10707728,0xa79806e6f4a00LL),reale(7245171,0x8aa6d7e27c400LL),
+      -reale(6517082,0x9ff2c462fde00LL),reale(4168671,0x7a21919979800LL),
+      -reale(3551918,0x26047c5101200LL),reale(1918361,0x786d4fd8aec00LL),
+      -reale(1131511,0x7e7a26769a600LL),reale(747310,0xbb693903a2f10LL),
+      reale(12305436712LL,0x56b51693aedc3LL),
       // C4[1], coeff of eps^15, polynomial in n of order 14
-      reale(-0x3c6fc9bLL,0xd34acc7afb160LL),
-      reale(0xe116580LL,0xed659df2db350LL),
-      reale(-0x52a727eLL,0xffad8c41641c0LL),
-      reale(0x2d05c8bLL,0xc1161d91d1e30LL),
-      reale(-0x1ffbf42LL,0xc2e0c3245ca20LL),
-      reale(0x14bb8abLL,0xd5c3b2c9df710LL),
-      reale(-0x113cc2bLL,0xdedc39fe27680LL),
-      reale(0xb6df41LL,0x3d2e52a8729f0LL),reale(-0xa301b9LL,0xe303054ea72e0LL),
-      reale(0x68e7b4LL,0xeec2e9924a2d0LL),reale(-0x5dfa39LL,0xc76d5123eb40LL),
-      reale(0x371da9LL,0x775a08e9d4db0LL),reale(-0x2b6819LL,0xb0252b48b0ba0LL),
-      reale(0x113fb3LL,0xe52285ff91690LL),reale(281319LL,0xf8ed6ce679421LL),
-      reale(0x2dd761028LL,0x56b51693aedc3LL),
+      -reale(63372442,0x2cb5338504ea0LL),reale(236021120,0xed659df2db350LL),
+      -reale(86667901,0x5273be9be40LL),reale(47209611,0xc1161d91d1e30LL),
+      -reale(33537857,0x3d1f3cdba35e0LL),reale(21739691,0xd5c3b2c9df710LL),
+      -reale(18074666,0x2123c601d8980LL),reale(11984705,0x3d2e52a8729f0LL),
+      -reale(10682808,0x1cfcfab158d20LL),reale(6875060,0xeec2e9924a2d0LL),
+      -reale(6158904,0xf3892aedc14c0LL),reale(3612073,0x775a08e9d4db0LL),
+      -reale(2844696,0x4fdad4b74f460LL),reale(1130419,0xe52285ff91690LL),
+      reale(281319,0xf8ed6ce679421LL),reale(12305436712LL,0x56b51693aedc3LL),
       // C4[1], coeff of eps^14, polynomial in n of order 15
-      reale(0x1686954eLL,0xab0ca9f0672c0LL),
-      reale(-0x18f39aa3LL,0xf7f66145ac080LL),
-      reale(-0x3a0925aLL,0xc1505cc0bac40LL),
-      reale(0xe9e6ab6LL,0xf5560cf897d00LL),
-      reale(-0x55e9003LL,0x4be7d5e16f9c0LL),
-      reale(0x2dfded5LL,0xa87e22e4ae980LL),
-      reale(-0x210f9a6LL,0xd4fc0153d9340LL),
-      reale(0x14cb451LL,0xa9bac4593e00LL),
-      reale(-0x1194a26LL,0x8a1a78ee4b0c0LL),
-      reale(0xb2463cLL,0x18da60c9eb280LL),reale(-0xa0e480LL,0x8e87a70218a40LL),
-      reale(0x60aabfLL,0xce8110cc57f00LL),reale(-0x54f93fLL,0xe5935645957c0LL),
-      reale(0x2b1f5cLL,0xf4ab3cac7db80LL),reale(-0x1ab50dLL,0xd007feba15140LL),
-      reale(0x10fe97LL,0xd17a5fb748e66LL),
-      reale(0x2dd761028LL,0x56b51693aedc3LL),
+      reale(377918798,0xab0ca9f0672c0LL),-reale(418618018,0x8099eba53f80LL),
+      -reale(60854873,0x3eafa33f453c0LL),reale(245263030,0xf5560cf897d00LL),
+      -reale(90083330,0xb4182a1e90640LL),reale(48226005,0xa87e22e4ae980LL),
+      -reale(34666917,0x2b03feac26cc0LL),reale(21804113,0xa9bac4593e00LL),
+      -reale(18434597,0x75e58711b4f40LL),reale(11683388,0x18da60c9eb280LL),
+      -reale(10544255,0x717858fde75c0LL),reale(6335167,0xce8110cc57f00LL),
+      -reale(5568830,0x1a6ca9ba6a840LL),reale(2826076,0xf4ab3cac7db80LL),
+      -reale(1750284,0x2ff80145eaec0LL),reale(1113751,0xd17a5fb748e66LL),
+      reale(12305436712LL,0x56b51693aedc3LL),
       // C4[1], coeff of eps^13, polynomial in n of order 16
-      reale(-0x7520d0LL,0xa4d593a093f00LL),
-      reale(-0x3d6e840LL,0xb30e02f756bd0LL),
-      reale(0x172fcf79LL,0x614b445047d20LL),
-      reale(-0x1a12258eLL,0x2cf605a6bef70LL),
-      reale(-0x36b5f45LL,0xf9506795e5f40LL),
-      reale(0xf3c2617LL,0x61702d3245910LL),
-      reale(-0x59a6acbLL,0xd6db4f4dda960LL),
-      reale(0x2ee8dc0LL,0xa4967a4d0acb0LL),
-      reale(-0x2245593LL,0x330fa794d1f80LL),
-      reale(0x14b53a7LL,0x3869a07cfee50LL),
-      reale(-0x11e3e06LL,0x30c37e68585a0LL),
-      reale(0xaab4d0LL,0x277eed08021f0LL),reale(-0x9bc884LL,0x43ccf6bb79fc0LL),
-      reale(0x54ae2dLL,0x5f33e35304b90LL),reale(-0x460d74LL,0x6f09191b631e0LL),
-      reale(0x19d34aLL,0x5de933ef26f30LL),reale(420297LL,0x50d0b3d8c1d9bLL),
-      reale(0x2dd761028LL,0x56b51693aedc3LL),
+      -reale(7676111,0x5b2a6c5f6c100LL),-reale(64415807,0x4cf1fd08a9430LL),
+      reale(389009273,0x614b445047d20LL),-reale(437396877,0xd309fa5941090LL),
+      -reale(57368388,0x6af986a1a0c0LL),reale(255600151,0x61702d3245910LL),
+      -reale(94005962,0x2924b0b2256a0LL),reale(49188288,0xa4967a4d0acb0LL),
+      -reale(35935634,0xccf0586b2e080LL),reale(21713831,0x3869a07cfee50LL),
+      -reale(18759173,0xcf3c8197a7a60LL),reale(11187408,0x277eed08021f0LL),
+      -reale(10209411,0xbc33094486040LL),reale(5549613,0x5f33e35304b90LL),
+      -reale(4590963,0x90f6e6e49ce20LL),reale(1692490,0x5de933ef26f30LL),
+      reale(420297,0x50d0b3d8c1d9bLL),reale(12305436712LL,0x56b51693aedc3LL),
       // C4[1], coeff of eps^12, polynomial in n of order 17
-      reale(-852920LL,0x957d30569cf80LL),reale(-0x2165d8LL,0xdf35a289d0800LL),
-      reale(-0x76d1b2LL,0xcbde23356e080LL),
-      reale(-0x3ebd49cLL,0xe2a9f41fb6f00LL),
-      reale(0x17e7b72bLL,0x8c48395cfc980LL),
-      reale(-0x1b576830LL,0xdde8a3cd90600LL),
-      reale(-0x321c36bLL,0xab56475d73a80LL),
-      reale(0xfedb7e2LL,0x9f71e62ba7d00LL),
-      reale(-0x5e066beLL,0xa982ebb2fe380LL),
-      reale(0x2fb3d49LL,0x7efcd81e48400LL),
-      reale(-0x23a48a7LL,0x54086addc7480LL),
-      reale(0x1464878LL,0xfc61768bbcb00LL),
-      reale(-0x121cb8cLL,0xadcb9cd1f9d80LL),
-      reale(0x9ec922LL,0xe1fef86250200LL),reale(-0x915091LL,0x1a8199afc0e80LL),
-      reale(0x431bbdLL,0x8a16c0de4d900LL),reale(-0x2cbd42LL,0x58c787b347780LL),
-      reale(0x1aeb62LL,0xc6396b58af30cLL),
-      reale(0x2dd761028LL,0x56b51693aedc3LL),
+      -reale(852919,0x6a82cfa963080LL),-reale(2188759,0x20ca5d762f800LL),
+      -reale(7786929,0x3421dcca91f80LL),-reale(65787035,0x1d560be049100LL),
+      reale(401061675,0x8c48395cfc980LL),-reale(458713135,0x22175c326fa00LL),
+      -reale(52544362,0x54a9b8a28c580LL),reale(267237346,0x9f71e62ba7d00LL),
+      -reale(98592445,0x567d144d01c80LL),reale(50019657,0x7efcd81e48400LL),
+      -reale(37374118,0xabf7952238b80LL),reale(21383288,0xfc61768bbcb00LL),
+      -reale(18992011,0x5234632e06280LL),reale(10406178,0xe1fef86250200LL),
+      -reale(9523344,0xe57e66503f180LL),reale(4398013,0x8a16c0de4d900LL),
+      -reale(2932033,0xa738784cb8880LL),reale(1764194,0xc6396b58af30cLL),
+      reale(12305436712LL,0x56b51693aedc3LL),
       // C4[1], coeff of eps^11, polynomial in n of order 18
-      reale(-210363LL,0x894c962cfda20LL),reale(-399460LL,0xe15065310f550LL),
-      reale(-856142LL,0x1dd6068d45900LL),reale(-0x21accbLL,0xf106ca37844b0LL),
-      reale(-0x787db1LL,0x94f439683f7e0LL),
-      reale(-0x401a6b3LL,0xd339cce20e210LL),
-      reale(0x18b03a63LL,0x2b5605d0252c0LL),
-      reale(-0x1ccc4710LL,0xf5fd24e8a2970LL),
-      reale(-0x2bb69a8LL,0x3e7fbdda905a0LL),
-      reale(0x10b6e02dLL,0xa9af8baa076d0LL),
-      reale(-0x6341c45LL,0x856e0a4adac80LL),
-      reale(0x303e0d6LL,0x9d940e3bb2630LL),
-      reale(-0x2535447LL,0x9596aaa47e360LL),
-      reale(0x13b8847LL,0x5f0f1f3a9390LL),
-      reale(-0x1221aedLL,0xbe96a86974640LL),
-      reale(0x8c6533LL,0xc21b589061af0LL),reale(-0x7cca79LL,0x52e1754897120LL),
-      reale(0x28d6e8LL,0xd6956da2a1850LL),reale(661843LL,0xede00571b821dLL),
-      reale(0x2dd761028LL,0x56b51693aedc3LL),
+      -reale(210362,0x76b369d3025e0LL),-reale(399459,0x1eaf9acef0ab0LL),
+      -reale(856141,0xe229f972ba700LL),-reale(2206922,0xef935c87bb50LL),
+      -reale(7896496,0x6b0bc697c0820LL),-reale(67217074,0x2cc6331df1df0LL),
+      reale(414202467,0x2b5605d0252c0LL),-reale(483149583,0xa02db175d690LL),
+      -reale(45836711,0xc18042256fa60LL),reale(280420397,0xa9af8baa076d0LL),
+      -reale(104078404,0x7a91f5b525380LL),reale(50585814,0x9d940e3bb2630LL),
+      -reale(39015494,0x6a69555b81ca0LL),reale(20678727,0x5f0f1f3a9390LL),
+      -reale(19012332,0x416957968b9c0LL),reale(9200947,0xc21b589061af0LL),
+      -reale(8178296,0xad1e8ab768ee0LL),reale(2676456,0xd6956da2a1850LL),
+      reale(661843,0xede00571b821dLL),reale(12305436712LL,0x56b51693aedc3LL),
       // C4[1], coeff of eps^10, polynomial in n of order 19
-      reale(-73283LL,0x7753088b32340LL),reale(-119857LL,0x503bdcd29680LL),
-      reale(-209311LL,0x36a252c262fc0LL),reale(-398729LL,0x3cdb9024cf400LL),
-      reale(-857928LL,0x73576020f6840LL),reale(-0x21e950LL,0x80dd570861180LL),
-      reale(-0x7a1b6dLL,0x5bfe351eff4c0LL),
-      reale(-0x41842d1LL,0x30fa22d2e1700LL),
-      reale(0x198b7f5eLL,0x4af905b8fd40LL),
-      reale(-0x1e7c93feLL,0x558506c252c80LL),
-      reale(-0x22b9cddLL,0x5ae96a3eba9c0LL),
-      reale(0x119beacaLL,0x62539c3ab7a00LL),
-      reale(-0x69b336eLL,0x85395d792240LL),
-      reale(0x304d69aLL,0xf42d6a1912780LL),
-      reale(-0x26fd218LL,0x37da509e28ec0LL),
-      reale(0x127dc4bLL,0xc578a6be65d00LL),
-      reale(-0x11b073eLL,0xcf4fbcc191740LL),
-      reale(0x703610LL,0xa4f0c77ab4280LL),reale(-0x542f99LL,0x39bdbba9de3c0LL),
-      reale(0x2e519cLL,0x619b33f1391d2LL),
-      reale(0x2dd761028LL,0x56b51693aedc3LL),
+      -reale(73282,0x88acf774cdcc0LL),-reale(119856,0xfafc4232d6980LL),
+      -reale(209310,0xc95dad3d9d040LL),-reale(398728,0xc3246fdb30c00LL),
+      -reale(857927,0x8ca89fdf097c0LL),-reale(2222415,0x7f22a8f79ee80LL),
+      -reale(8002412,0xa401cae100b40LL),-reale(68698832,0xcf05dd2d1e900LL),
+      reale(428572510,0x4af905b8fd40LL),-reale(511480829,0xaa7af93dad380LL),
+      -reale(36412636,0xa51695c145640LL),reale(295430858,0x62539c3ab7a00LL),
+      -reale(110834541,0xf7ac6a286ddc0LL),reale(50648730,0xf42d6a1912780LL),
+      -reale(40882711,0xc825af61d7140LL),reale(19389515,0xc578a6be65d00LL),
+      -reale(18548541,0x30b0433e6e8c0LL),reale(7353872,0xa4f0c77ab4280LL),
+      -reale(5517208,0xc642445621c40LL),reale(3035548,0x619b33f1391d2LL),
+      reale(12305436712LL,0x56b51693aedc3LL),
       // C4[1], coeff of eps^9, polynomial in n of order 20
-      reale(-31117LL,0xa312a60d595c0LL),reale(-46467LL,0xc610e9b75c3d0LL),
-      reale(-72340LL,0xec4138ed66a60LL),reale(-118592LL,0x1698fb11dc3f0LL),
-      reale(-207682LL,0xcd8d22096b00LL),reale(-396976LL,0xaa795c025ea10LL),
-      reale(-857777LL,0x69561c6b2cba0LL),reale(-0x22169fLL,0x6389fad8eaa30LL),
-      reale(-0x7b9caaLL,0xfe0c48806c040LL),
-      reale(-0x42f6ddeLL,0x38b89568d7850LL),
-      reale(0x1a7bcca5LL,0x84d59896b7ce0LL),
-      reale(-0x20784ea7LL,0x9f54bd1f6c870LL),
-      reale(-0x15e505bLL,0xa03881a7b3580LL),
-      reale(0x12a1264fLL,0xea91e4bc80e90LL),
-      reale(-0x71f080fLL,0x9aa3856861e20LL),
-      reale(0x2f78fa3LL,0x69cfb591beb0LL),
-      reale(-0x28f2ec6LL,0x52aaa20546ac0LL),
-      reale(0x1063cc7LL,0x9567a8e814cd0LL),
-      reale(-0x1029825LL,0x36be5fae84f60LL),reale(0x44c702LL,0xb6bfddcb2cf0LL),
-      reale(0x10d532LL,0xee71952935057LL),
-      reale(0x2dd761028LL,0x56b51693aedc3LL),
+      -reale(31116,0x5ced59f2a6a40LL),-reale(46466,0x39ef1648a3c30LL),
+      -reale(72339,0x13bec712995a0LL),-reale(118591,0xe96704ee23c10LL),
+      -reale(207681,0xf3272ddf69500LL),-reale(396975,0x5586a3fda15f0LL),
+      -reale(857776,0x96a9e394d3460LL),-reale(2234014,0x9c760527155d0LL),
+      -reale(8101033,0x1f3b77f93fc0LL),-reale(70217181,0xc7476a97287b0LL),
+      reale(444320933,0x84d59896b7ce0LL),-reale(544755366,0x60ab42e093790LL),
+      -reale(22958170,0x5fc77e584ca80LL),reale(312550991,0xea91e4bc80e90LL),
+      -reale(119474190,0x655c7a979e1e0LL),reale(49778595,0x69cfb591beb0LL),
+      -reale(42938053,0xad555dfab9540LL),reale(17185991,0x9567a8e814cd0LL),
+      -reale(16947236,0xc941a0517b0a0LL),reale(4507394,0xb6bfddcb2cf0LL),
+      reale(1103154,0xee71952935057LL),reale(12305436712LL,0x56b51693aedc3LL),
       // C4[1], coeff of eps^8, polynomial in n of order 21
-      reale(-15014LL,0x996357a240100LL),reale(-21082LL,0x80b2866e67c00LL),
-      reale(-30471LL,0x424a7828b2700LL),reale(-45588LL,0x1b4524ae4e600LL),
-      reale(-71125LL,0xf9b915ca49d00LL),reale(-116892LL,0x75249d55b3000LL),
-      reale(-205316LL,0xe55d54d138300LL),reale(-393885LL,0xb472712587a00LL),
-      reale(-855001LL,0xd055aacfaf900LL),reale(-0x222ddfLL,0x4cee9b3ebe400LL),
-      reale(-0x7ceb8dLL,0x68cb818fe1f00LL),
-      reale(-0x446b5a4LL,0x80eee8c648e00LL),
-      reale(0x1b83421dLL,0x9a516d5401500LL),
-      reale(-0x22d58608LL,0x1edba42919800LL),
-      reale(-0x32966aLL,0xfebeef063fb00LL),
-      reale(0x13c8f42eLL,0x28269ca022200LL),
-      reale(-0x7cff4beLL,0x811852f8cf100LL),
-      reale(0x2cffb8aLL,0x227a729454c00LL),
-      reale(-0x2ad1586LL,0xf632e4d5e1700LL),
-      reale(0xcf2191LL,0xcd96a182a3600LL),reale(-0xbe8440LL,0xba24e95fa8d00LL),
-      reale(0x59b7b6LL,0x70bef82b8988LL),
-      reale(0x2dd761028LL,0x56b51693aedc3LL),
+      -reale(15013,0x669ca85dbff00LL),-reale(21081,0x7f4d799198400LL),
+      -reale(30470,0xbdb587d74d900LL),-reale(45587,0xe4badb51b1a00LL),
+      -reale(71124,0x646ea35b6300LL),-reale(116891,0x8adb62aa4d000LL),
+      -reale(205315,0x1aa2ab2ec7d00LL),-reale(393884,0x4b8d8eda78600LL),
+      -reale(855000,0x2faa553050700LL),-reale(2239966,0xb31164c141c00LL),
+      -reale(8186764,0x97347e701e100LL),-reale(71742883,0x7f111739b7200LL),
+      reale(461586973,0x9a516d5401500LL),-reale(584418823,0xe1245bd6e6800LL),
+      -reale(3315305,0x14110f9c0500LL),reale(331936814,0x28269ca022200LL),
+      -reale(131069117,0x7ee7ad0730f00LL),reale(47184778,0x227a729454c00LL),
+      -reale(44897669,0x9cd1b2a1e900LL),reale(13574545,0xcd96a182a3600LL),
+      -reale(12485695,0x45db16a057300LL),reale(5879734,0x70bef82b8988LL),
+      reale(12305436712LL,0x56b51693aedc3LL),
       // C4[1], coeff of eps^7, polynomial in n of order 22
-      reale(-7901LL,0x9c73992757ce0LL),reale(-10614LL,0xd53cf6d36350LL),
-      reale(-14566LL,0x1ef851d8afe40LL),reale(-20490LL,0xf1527631beb30LL),
-      reale(-29671LL,0x7b631f71207a0LL),reale(-44483LL,0x14e0fdd8d6110LL),
-      reale(-69563LL,0xf4203011ca500LL),reale(-114633LL,0xf68a1705e90f0LL),
-      reale(-201990LL,0x6bee28eeee260LL),reale(-389022LL,0xcc2800fcb46d0LL),
-      reale(-848629LL,0x3fd7a13dccbc0LL),reale(-0x222512LL,0x4682635aa4eb0LL),
-      reale(-0x7de601LL,0x6ecd778286d20LL),
-      reale(-0x45d4511LL,0xf0e001fa37490LL),
-      reale(0x1ca320dfLL,0x383b5471fd280LL),
-      reale(-0x25b322ebLL,0x35ca6e1458470LL),
-      reale(0x1904910LL,0x13df159bb07e0LL),
-      reale(0x150d751fLL,0x101c2c33c4a50LL),
-      reale(-0x8cc24e2LL,0x85cc800fa1940LL),
-      reale(0x277d0feLL,0x88562e0e69230LL),
-      reale(-0x2b67a1fLL,0xdd4a4034312a0LL),
-      reale(0x7911a2LL,0xa8c8e9d8c2810LL),reale(0x1c8666LL,0xdc5c61854a479LL),
-      reale(0x2dd761028LL,0x56b51693aedc3LL),
+      -reale(7900,0x638c66d8a8320LL),-reale(10613,0xf2ac3092c9cb0LL),
+      -reale(14565,0xe107ae27501c0LL),-reale(20489,0xead89ce414d0LL),
+      -reale(29670,0x849ce08edf860LL),-reale(44482,0xeb1f022729ef0LL),
+      -reale(69562,0xbdfcfee35b00LL),-reale(114632,0x975e8fa16f10LL),
+      -reale(201989,0x9411d71111da0LL),-reale(389021,0x33d7ff034b930LL),
+      -reale(848628,0xc0285ec233440LL),-reale(2237713,0xb97d9ca55b150LL),
+      -reale(8250880,0x9132887d792e0LL),-reale(73221392,0xf1ffe05c8b70LL),
+      reale(480452831,0x383b5471fd280LL),-reale(632496874,0xca3591eba7b90LL),
+      reale(26233104,0x13df159bb07e0LL),reale(353203487,0x101c2c33c4a50LL),
+      -reale(147596513,0x7a337ff05e6c0LL),reale(41406718,0x88562e0e69230LL),
+      -reale(45513246,0x22b5bfcbced60LL),reale(7934370,0xa8c8e9d8c2810LL),
+      reale(1869414,0xdc5c61854a479LL),reale(12305436712LL,0x56b51693aedc3LL),
       // C4[1], coeff of eps^6, polynomial in n of order 23
-      reale(-4407LL,0x6c651a3683c0LL),reale(-5730LL,0xf079c145a4080LL),
-      reale(-7571LL,0xf56d81f7d3b40LL),reale(-10190LL,0x23c2d4a6cf700LL),
-      reale(-14012LL,0x28dbf9e776c0LL),reale(-19752LL,0xb116ccf06bd80LL),
-      reale(-28666LL,0x593e72ff04e40LL),reale(-43079LL,0x1712fad5bac00LL),
-      reale(-67544LL,0xf2beaf522d9c0LL),reale(-111635LL,0x4d71aa44fda80LL),
-      reale(-197390LL,0x332297afa3140LL),reale(-381766LL,0xdd1ff46476100LL),
-      reale(-837259LL,0xf5fff11016cc0LL),reale(-0x21ed42LL,0x2c2ea4cf65780LL),
-      reale(-0x7e558fLL,0x3d724ddb3a440LL),
-      reale(-0x4718fdeLL,0x487e91ab0d600LL),
-      reale(0x1dd9f8d6LL,0x3891b999befc0LL),
-      reale(-0x293cbff3LL,0x6e75d22baf480LL),
-      reale(0x451adb3LL,0xa045596356740LL),
-      reale(0x164b806dLL,0x41b777218cb00LL),
-      reale(-0xa4d3921LL,0x9d46b7a0b22c0LL),
-      reale(0x1c8780cLL,0x80284d25e7180LL),
-      reale(-0x2598f14LL,0xbf2cc7b983a40LL),
-      reale(0xd06ba8LL,0x68e501c228ffeLL),
-      reale(0x2dd761028LL,0x56b51693aedc3LL),
+      -reale(4406,0xf939ae5c97c40LL),-reale(5729,0xf863eba5bf80LL),
+      -reale(7570,0xa927e082c4c0LL),-reale(10189,0xdc3d2b5930900LL),
+      -reale(14011,0xfd72406188940LL),-reale(19751,0x4ee9330f94280LL),
+      -reale(28665,0xa6c18d00fb1c0LL),-reale(43078,0xe8ed052a45400LL),
+      -reale(67543,0xd4150add2640LL),-reale(111634,0xb28e55bb02580LL),
+      -reale(197389,0xccdd68505cec0LL),-reale(381765,0x22e00b9b89f00LL),
+      -reale(837258,0xa000eefe9340LL),-reale(2223425,0xd3d15b309a880LL),
+      -reale(8279438,0xc28db224c5bc0LL),-reale(74551261,0xb7816e54f2a00LL),
+      reale(500824278,0x3891b999befc0LL),-reale(691847154,0x918a2dd450b80LL),
+      reale(72461747,0xa045596356740LL),reale(374046829,0x41b777218cb00LL),
+      -reale(172833056,0x62b9485f4dd40LL),reale(29915148,0x80284d25e7180LL),
+      -reale(39423763,0x40d338467c5c0LL),reale(13659048,0x68e501c228ffeLL),
+      reale(12305436712LL,0x56b51693aedc3LL),
       // C4[1], coeff of eps^5, polynomial in n of order 24
-      reale(-2546LL,0xec9cefbc9d280LL),reale(-3227LL,0x1984ebdb5b7d0LL),
-      reale(-4145LL,0x738eecfd059a0LL),reale(-5401LL,0x3e401d7ac5070LL),
-      reale(-7154LL,0x4d3d93e97d4c0LL),reale(-9654LL,0x61710b1830f10LL),
-      reale(-13309LL,0x14f6511b6e7e0LL),reale(-18811LL,0xa9efbf01dd7b0LL),
-      reale(-27376LL,0x3ca1f04c03700LL),reale(-41261LL,0x8280be03d8e50LL),
-      reale(-64894LL,0x38569bebc6620LL),reale(-107623LL,0x1fd1dea8216f0LL),
-      reale(-191036LL,0x93175f5e41940LL),reale(-371182LL,0x696775c8c5590LL),
-      reale(-818769LL,0x56e5b9559f460LL),reale(-0x216f40LL,0x6021c81002e30LL),
-      reale(-0x7de05cLL,0x1d8323ca49b80LL),
-      reale(-0x480a6b0LL,0xfaa33882684d0LL),
-      reale(0x1f1eeae6LL,0xf5aa540a8b2a0LL),
-      reale(-0x2dae4b1dLL,0x9baa65aef3d70LL),
-      reale(0x8daa6e0LL,0x8152775e2ddc0LL),
-      reale(0x16f66a07LL,0x81b301a133c10LL),
-      reale(-0xcb843b1LL,0x6f0317ba1c0e0LL),
-      reale(0x9b9ee4LL,0x255c7c31664b0LL),reale(0x14d790LL,0xd74a19c69db33LL),
-      reale(0x2dd761028LL,0x56b51693aedc3LL),
+      -reale(2545,0x1363104362d80LL),-reale(3226,0xe67b1424a4830LL),
+      -reale(4144,0x8c711302fa660LL),-reale(5400,0xc1bfe2853af90LL),
+      -reale(7153,0xb2c26c1682b40LL),-reale(9653,0x9e8ef4e7cf0f0LL),
+      -reale(13308,0xeb09aee491820LL),-reale(18810,0x561040fe22850LL),
+      -reale(27375,0xc35e0fb3fc900LL),-reale(41260,0x7d7f41fc271b0LL),
+      -reale(64893,0xc7a96414399e0LL),-reale(107622,0xe02e2157de910LL),
+      -reale(191035,0x6ce8a0a1be6c0LL),-reale(371181,0x96988a373aa70LL),
+      -reale(818768,0xa91a46aa60ba0LL),-reale(2191167,0x9fde37effd1d0LL),
+      -reale(8249435,0xe27cdc35b6480LL),-reale(75540143,0x55cc77d97b30LL),
+      reale(522119910,0xf5aa540a8b2a0LL),-reale(766397212,0x64559a510c290LL),
+      reale(148547296,0x8152775e2ddc0LL),reale(385247751,0x81b301a133c10LL),
+      -reale(213402544,0x90fce845e3f20LL),reale(10198756,0x255c7c31664b0LL),
+      reale(1365904,0xd74a19c69db33LL),reale(12305436712LL,0x56b51693aedc3LL),
       // C4[1], coeff of eps^4, polynomial in n of order 25
       -real(0x5cd20bbc3c672180LL),-real(0x73720b2d98187c00LL),
-      reale(-2322LL,0x3b147a8a97980LL),reale(-2953LL,0x4d9e8f7737100LL),
-      reale(-3805LL,0xbe842705d1c80LL),reale(-4974LL,0xa137909fe2e00LL),
-      reale(-6610LL,0x667d8d0cf5780LL),reale(-8951LL,0xe683854b94b00LL),
-      reale(-12383LL,0x33b7e1d5bba80LL),reale(-17566LL,0xa0879e6965800LL),
-      reale(-25661LL,0xb590ccf1dd580LL),reale(-38826LL,0x1bb8eff66e500LL),
-      reale(-61314LL,0xb8a8c55f13880LL),reale(-102124LL,0xf5aa449fc8200LL),
-      reale(-182122LL,0x4b2fa6f17380LL),reale(-355743LL,0xcbf416e48bf00LL),
-      reale(-789744LL,0xce71bd7a1680LL),reale(-0x20853dLL,0xd3a64f07d2c00LL),
-      reale(-0x7beb6aLL,0xc063383a6b180LL),
-      reale(-0x484bed9LL,0x7eb8bd22b5900LL),
-      reale(0x2054758bLL,0xe15955752d480LL),
-      reale(-0x334d87eeLL,0x4f7736a64d600LL),
-      reale(0x10cbd69bLL,0x6d691a09a0f80LL),
-      reale(0x14d790d7LL,0x4a19c69db3300LL),
-      reale(-0xffa99b7LL,0xe0ca1aed7f280LL),
-      reale(0x28a45a7LL,0x9d4bdce6b704LL),
-      reale(0x2dd761028LL,0x56b51693aedc3LL),
+      -reale(2321,0xc4eb857568680LL),-reale(2952,0xb2617088c8f00LL),
+      -reale(3804,0x417bd8fa2e380LL),-reale(4973,0x5ec86f601d200LL),
+      -reale(6609,0x998272f30a880LL),-reale(8950,0x197c7ab46b500LL),
+      -reale(12382,0xcc481e2a44580LL),-reale(17565,0x5f7861969a800LL),
+      -reale(25660,0x4a6f330e22a80LL),-reale(38825,0xe447100991b00LL),
+      -reale(61313,0x47573aa0ec780LL),-reale(102123,0xa55bb6037e00LL),
+      -reale(182121,0xfb4d0590e8c80LL),-reale(355742,0x340be91b74100LL),
+      -reale(789743,0xf318e4285e980LL),-reale(2131260,0x2c59b0f82d400LL),
+      -reale(8121193,0x3f9cc7c594e80LL),-reale(75808472,0x814742dd4a700LL),
+      reale(542406027,0xe15955752d480LL),-reale(860719085,0xb088c959b2a00LL),
+      reale(281794203,0x6d691a09a0f80LL),reale(349671639,0x4a19c69db3300LL),
+      -reale(268081590,0x1f35e51280d80LL),reale(42616231,0x9d4bdce6b704LL),
+      reale(12305436712LL,0x56b51693aedc3LL),
       // C4[1], coeff of eps^3, polynomial in n of order 26
       -real(0x34f88b61ee2c2e60LL),-real(0x40e8b73250ad02b0LL),
       -real(0x50402824a1190680LL),-real(0x643133a56bf6de50LL),
-      -real(0x7e70b50d7e53aea0LL),reale(-2584LL,0x76116efc39410LL),
-      reale(-3344LL,0xd2a9490df5540LL),reale(-4391LL,0x6eaf4118b9070LL),
-      reale(-5863LL,0x134611e898120LL),reale(-7979LL,0x64baaeea752d0LL),
-      reale(-11097LL,0xec88b5a185100LL),reale(-15826LL,0xc0dc248c81730LL),
-      reale(-23249LL,0xf0ba5cbf340e0LL),reale(-35381LL,0x50bb879d81990LL),
-      reale(-56210LL,0xf757e0cd1ccc0LL),reale(-94206LL,0xd06751da895f0LL),
-      reale(-169094LL,0x151b52b1170a0LL),reale(-332578LL,0xf12799bfc850LL),
-      reale(-743996LL,0x6f9cff04ba880LL),reale(-0x1eebfeLL,0x63917bb86ecb0LL),
-      reale(-0x775923LL,0x8ace3e96bf060LL),
-      reale(-0x471a981LL,0xe12bc4d183f10LL),
-      reale(0x211f5d66LL,0x34418f385c440LL),
-      reale(-0x3a18e3bfLL,0x7b0b598ecfb70LL),
-      reale(0x1f6fcfcdLL,0x42f7f1faaa020LL),
-      reale(0x5a50c8fLL,0xa411a5cab5dd0LL),
-      reale(-0x6fc3f8cLL,0xa4f6f608588b5LL),
-      reale(0x2dd761028LL,0x56b51693aedc3LL),
+      -real(0x7e70b50d7e53aea0LL),-reale(2583,0x89ee9103c6bf0LL),
+      -reale(3343,0x2d56b6f20aac0LL),-reale(4390,0x9150bee746f90LL),
+      -reale(5862,0xecb9ee1767ee0LL),-reale(7978,0x9b4551158ad30LL),
+      -reale(11096,0x13774a5e7af00LL),-reale(15825,0x3f23db737e8d0LL),
+      -reale(23248,0xf45a340cbf20LL),-reale(35380,0xaf4478627e670LL),
+      -reale(56209,0x8a81f32e3340LL),-reale(94205,0x2f98ae2576a10LL),
+      -reale(169093,0xeae4ad4ee8f60LL),-reale(332577,0xf0ed8664037b0LL),
+      -reale(743995,0x906300fb45780LL),-reale(2026493,0x9c6e844791350LL),
+      -reale(7821602,0x7531c16940fa0LL),-reale(74557824,0x1ed43b2e7c0f0LL),
+      reale(555703654,0x34418f385c440LL),-reale(974709694,0x84f4a67130490LL),
+      reale(527421389,0x42f7f1faaa020LL),reale(94702735,0xa411a5cab5dd0LL),
+      -reale(117194635,0x5b0909f7a774bLL),
+      reale(12305436712LL,0x56b51693aedc3LL),
       // C4[1], coeff of eps^2, polynomial in n of order 27
       -real(0x1bd57a8f504dd3c0LL),-real(0x21b6ff10b9172180LL),
       -real(0x292825cda3a88940LL),-real(0x32aacbfadedfca00LL),
       -real(0x3ef38a62fa0322c0LL),-real(0x4f013a1cfd80d280LL),
-      -real(0x64414a4729c69840LL),reale(-2061LL,0x6f152d95fcd00LL),
-      reale(-2684LL,0xdc83926d41e40LL),reale(-3548LL,0xc265fa3cc1c80LL),
-      reale(-4771LL,0x913625a6408c0LL),reale(-6542LL,0xfe9a81bee2400LL),
-      reale(-9171LL,0xe574b6bb02f40LL),reale(-13191LL,0x4f96bef7feb80LL),
-      reale(-19555LL,0x61c6c5c4f99c0LL),reale(-30048LL,0x45cfafabb7b00LL),
-      reale(-48225LL,0x8f82b0b095040LL),reale(-81690LL,0xfa35bf4ada80LL),
-      reale(-148266LL,0x546f21a745ac0LL),reale(-294963LL,0x9bc8c4fb81200LL),
-      reale(-667588LL,0x3f3977057c140LL),reale(-0x1c14faLL,0xf37bd27dd2980LL),
-      reale(-0x6dd992LL,0x3beb764a8bc0LL),
-      reale(-0x42b1cf8LL,0x24613ead42900LL),
-      reale(0x204e2080LL,0xe60e5a413c240LL),
-      reale(-0x3f388cb0LL,0xd26d8bee71880LL),
-      reale(0x31ac6e89LL,0xa3ce7fc4a6cc0LL),
-      reale(-0xdf87f17LL,0x49edec10b116aLL),
-      reale(0x2dd761028LL,0x56b51693aedc3LL),
+      -real(0x64414a4729c69840LL),-reale(2060,0x90ead26a03300LL),
+      -reale(2683,0x237c6d92be1c0LL),-reale(3547,0x3d9a05c33e380LL),
+      -reale(4770,0x6ec9da59bf740LL),-reale(6541,0x1657e411dc00LL),
+      -reale(9170,0x1a8b4944fd0c0LL),-reale(13190,0xb069410801480LL),
+      -reale(19554,0x9e393a3b06640LL),-reale(30047,0xba30505448500LL),
+      -reale(48224,0x707d4f4f6afc0LL),-reale(81689,0xf05ca40b52580LL),
+      -reale(148265,0xab90de58ba540LL),-reale(294962,0x64373b047ee00LL),
+      -reale(667587,0xc0c688fa83ec0LL),-reale(1840377,0xc842d822d680LL),
+      -reale(7199121,0xfc41489b57440LL),-reale(69934327,0xdb9ec152bd700LL),
+      reale(541991040,0xe60e5a413c240LL),-reale(1060670639,0x2d9274118e780LL),
+      reale(833384073,0xa3ce7fc4a6cc0LL),-reale(234389270,0xb61213ef4ee96LL),
+      reale(12305436712LL,0x56b51693aedc3LL),
       // C4[1], coeff of eps^1, polynomial in n of order 28
       -real(0xb4c355cd41c92c0LL),-real(0xd8fea3a41cc7830LL),
       -real(0x1064f0c6b9a6ad20LL),-real(0x13f7a88902ef1b10LL),
       -real(0x1884a414973fcb80LL),-real(0x1e5fa2ae5243d7f0LL),
       -real(0x25fe0bb384ddd9e0LL),-real(0x3006f6e3e0e25ad0LL),
       -real(0x3d6c2c13c34ec440LL),-real(0x4f91f34825bd4fb0LL),
-      -real(0x688ffb74f98676a0LL),reale(-2234LL,0x213cc44f79d70LL),
-      reale(-3037LL,0x1ac7bc3d32300LL),reale(-4214LL,0x4ec1eec81c090LL),
-      reale(-5985LL,0x55e3357541ca0LL),reale(-8733LL,0x4677f29396db0LL),
-      reale(-13153LL,0xe152303028a40LL),reale(-20567LL,0xb1e8ad3c3f8d0LL),
-      reale(-33654LL,0xbd9d5a867fe0LL),reale(-58248LL,0xc5bdf1cadb5f0LL),
-      reale(-108258LL,0x86cb0c61c1180LL),reale(-221026LL,0x5333e3f23f910LL),
-      reale(-514223LL,0x447ad055320LL),reale(-0x163b46LL,0xd6175bf8f1630LL),
-      reale(-0x58ed15LL,0x585d6fe3c58c0LL),
-      reale(-0x363078aLL,0x9d8f02ecc6150LL),
-      reale(0x18d63744LL,0xd1e73fe253660LL),
-      reale(-0x254152e8LL,0xc525202c82e70LL),
-      reale(0x104c9445LL,0x29bfc1ec86bafLL),
-      reale(0x2dd761028LL,0x56b51693aedc3LL),
+      -real(0x688ffb74f98676a0LL),-reale(2233,0xdec33bb086290LL),
+      -reale(3036,0xe53843c2cdd00LL),-reale(4213,0xb13e1137e3f70LL),
+      -reale(5984,0xaa1cca8abe360LL),-reale(8732,0xb9880d6c69250LL),
+      -reale(13152,0x1eadcfcfd75c0LL),-reale(20566,0x4e1752c3c0730LL),
+      -reale(33653,0xf4262a5798020LL),-reale(58247,0x3a420e3524a10LL),
+      -reale(108257,0x7934f39e3ee80LL),-reale(221025,0xaccc1c0dc06f0LL),
+      -reale(514222,0xffbb852faace0LL),-reale(1456965,0x29e8a4070e9d0LL),
+      -reale(5827860,0xa7a2901c3a740LL),-reale(56821641,0x6270fd1339eb0LL),
+      reale(416692036,0xd1e73fe253660LL),-reale(625038055,0x3adadfd37d190LL),
+      reale(273454149,0x29bfc1ec86bafLL),
+      reale(12305436712LL,0x56b51693aedc3LL),
       // C4[2], coeff of eps^29, polynomial in n of order 0
-      real(185528LL),real(0x715c339b9LL),
+      185528,real(30429886905LL),
       // C4[2], coeff of eps^28, polynomial in n of order 1
-      real(0x40b1fa340LL),real(0x1068358d8LL),real(0x74e318fa9c07fLL),
+      real(17366491968LL),real(4404238552LL),real(0x74e318fa9c07fLL),
       // C4[2], coeff of eps^27, polynomial in n of order 2
-      real(0x601aa15d00LL),-real(0x39c62a4580LL),real(0x2655784c18LL),
+      real(412763643136LL),-real(248137794944LL),real(164642704408LL),
       real(0x4d882f0532d9e9LL),
       // C4[2], coeff of eps^26, polynomial in n of order 3
       real(0x11462b92d913a0LL),-real(0xdd4620ebadc40LL),
       real(0x5974730e46be0LL),real(0x16bcec57851ccLL),
-      reale(33547LL,0x1cf91962af003LL),
+      reale(33547,0x1cf91962af003LL),
       // C4[2], coeff of eps^25, polynomial in n of order 4
       real(0xc83679b433c00LL),-real(0xb29b6d58dfb00LL),real(0x5f4e3bdd4de00LL),
       -real(0x3affd9960e900LL),real(0x2665fb625f490LL),
-      reale(15809LL,0x8f200ee7e2a7dLL),
+      reale(15809,0x8f200ee7e2a7dLL),
       // C4[2], coeff of eps^24, polynomial in n of order 5
       real(0x67b92a8524a18e80LL),-real(0x609d7d3ca356ae00LL),
       real(0x39db180d1b52d580LL),-real(0x2fa1e9183dec9700LL),
       real(0x1294d8f2627edc80LL),real(0x4bc94ddbc9bad70LL),
-      reale(0x15c1a09LL,0xc1b4051297e97LL),
+      reale(22813193,0xc1b4051297e97LL),
       // C4[2], coeff of eps^23, polynomial in n of order 6
-      reale(24830LL,0x3d0fb879bb600LL),reale(-23213LL,0x5eff9ca332500LL),
-      reale(14957LL,0x147cd156ba400LL),reale(-13654LL,0xae15b46376300LL),
-      reale(7024LL,0x2535370909200LL),reale(-4512LL,0xc509c49f36100LL),
-      reale(2865LL,0xf50f5adcce1f0LL),reale(0xe0d0d0fLL,0x7c44346acc6c3LL),
+      reale(24830,0x3d0fb879bb600LL),-reale(23212,0xa100635ccdb00LL),
+      reale(14957,0x147cd156ba400LL),-reale(13653,0x51ea4b9c89d00LL),
+      reale(7024,0x2535370909200LL),-reale(4511,0x3af63b60c9f00LL),
+      reale(2865,0xf50f5adcce1f0LL),reale(235736335,0x7c44346acc6c3LL),
       // C4[2], coeff of eps^22, polynomial in n of order 7
-      reale(0xff64cLL,0x25a6222f26060LL),reale(-949437LL,0xeb5c58dd0e7c0LL),
-      reale(652845LL,0xb96689ab42720LL),reale(-615920LL,0x90ecba54afa80LL),
-      reale(356624LL,0x982d38f2a9de0LL),reale(-303840LL,0xdd3c82a37cd40LL),
-      reale(113262LL,0x286189b57e4a0LL),reale(28978LL,0x12ae8b059bc84LL),
-      reale(0x1977a7ac1LL,0x13b9f01928417LL),
+      reale(1046092,0x25a6222f26060LL),-reale(949436,0x14a3a722f1840LL),
+      reale(652845,0xb96689ab42720LL),-reale(615919,0x6f1345ab50580LL),
+      reale(356624,0x982d38f2a9de0LL),-reale(303839,0x22c37d5c832c0LL),
+      reale(113262,0x286189b57e4a0LL),reale(28978,0x12ae8b059bc84LL),
+      reale(6836353729LL,0x13b9f01928417LL),
       // C4[2], coeff of eps^21, polynomial in n of order 8
-      reale(0x46db68LL,0x71b79cbf7cc00LL),reale(-0x3c6911LL,0x7c1c75b062e80LL),
-      reale(0x2ca63cLL,0x6f81ce5fc3900LL),reale(-0x298bb1LL,0x22fc20ad7d380LL),
-      reale(0x1a1b5cLL,0xc70403130e600LL),reale(-0x1875afLL,0x6144896985880LL),
-      reale(787738LL,0x6bf60987b1300LL),reale(-530213LL,0x321d57754fd80LL),
-      reale(326645LL,0xab9033855e368LL),reale(0x4c66f7043LL,0x3b2dd04b78c45LL),
+      reale(4643688,0x71b79cbf7cc00LL),-reale(3959056,0x83e38a4f9d180LL),
+      reale(2926140,0x6f81ce5fc3900LL),-reale(2722736,0xdd03df5282c80LL),
+      reale(1710940,0xc70403130e600LL),-reale(1602990,0x9ebb76967a780LL),
+      reale(787738,0x6bf60987b1300LL),-reale(530212,0xcde2a88ab0280LL),
+      reale(326645,0xab9033855e368LL),reale(20509061187LL,0x3b2dd04b78c45LL),
       // C4[2], coeff of eps^20, polynomial in n of order 9
-      reale(0x241ac8LL,0x4fc26559c91c0LL),reale(-0x1bf00eLL,0xb28cda67dbe00LL),
-      reale(0x168b71LL,0x62c9a90a52a40LL),reale(-0x13d469LL,0x1840867dcae80LL),
-      reale(885946LL,0x5cb0a99f5e2c0LL),reale(-843741LL,0xb8eac147bdf00LL),
-      reale(469359LL,0x79db9d7cfb40LL),reale(-417112LL,0xe5b3a1db88f80LL),
-      reale(146559LL,0x51b0aa3dcb3c0LL),reale(37677LL,0x6dd5ee66abd48LL),
-      reale(0x1977a7ac1LL,0x13b9f01928417LL),
+      reale(2366152,0x4fc26559c91c0LL),-reale(1830925,0x4d73259824200LL),
+      reale(1477489,0x62c9a90a52a40LL),-reale(1299560,0xe7bf798235180LL),
+      reale(885946,0x5cb0a99f5e2c0LL),-reale(843740,0x47153eb842100LL),
+      reale(469359,0x79db9d7cfb40LL),-reale(417111,0x1a4c5e2477080LL),
+      reale(146559,0x51b0aa3dcb3c0LL),reale(37677,0x6dd5ee66abd48LL),
+      reale(6836353729LL,0x13b9f01928417LL),
       // C4[2], coeff of eps^19, polynomial in n of order 10
-      reale(0xadcce1LL,0xa8f910291300LL),reale(-0x75f1e7LL,0x90dc30b83db80LL),
-      reale(0x69bb72LL,0x5fb765e065c00LL),reale(-0x5425f0LL,0xa14f789ec9c80LL),
-      reale(0x3f4bc6LL,0x27d6c40aa500LL),reale(-0x39cf42LL,0x10ccffe37d80LL),
-      reale(0x2370a9LL,0x1de03c2bc2e00LL),reale(-0x2225b7LL,0x88489bd46be80LL),
-      reale(0xfd491LL,0x571c66f013700LL),reale(-742166LL,0x73c6192a49f80LL),
-      reale(439349LL,0xf7cfa6e796fc8LL),reale(0x4c66f7043LL,0x3b2dd04b78c45LL),
+      reale(11390177,0xa8f910291300LL),-reale(7729638,0x6f23cf47c2480LL),
+      reale(6929266,0x5fb765e065c00LL),-reale(5514735,0x5eb0876136380LL),
+      reale(4148166,0x27d6c40aa500LL),-reale(3788609,0xfef33001c8280LL),
+      reale(2322601,0x1de03c2bc2e00LL),-reale(2237878,0x77b7642b94180LL),
+      reale(1037457,0x571c66f013700LL),-reale(742165,0x8c39e6d5b6080LL),
+      reale(439349,0xf7cfa6e796fc8LL),reale(20509061187LL,0x3b2dd04b78c45LL),
       // C4[2], coeff of eps^18, polynomial in n of order 11
-      reale(0x12bba7dLL,0x3eb0d373a0e0LL),reale(-0xad54abLL,0xf67170f6ec640LL),
-      reale(0xadaa07LL,0xacc1b03fd73a0LL),reale(-0x778be1LL,0xf6d8be422c500LL),
-      reale(0x65b1d0LL,0xa317edb25b660LL),reale(-0x542b13LL,0xc007833bc43c0LL),
-      reale(0x399755LL,0xd5e83edc68920LL),reale(-0x36d934LL,0x413609e8fe280LL),
-      reale(0x1d1eb0LL,0x61c5f793c0be0LL),reale(-0x1b40eeLL,0x50c085e64140LL),
-      reale(579905LL,0x9d50696085ea0LL),reale(150042LL,0xa9efa9004c604LL),
-      reale(0x4c66f7043LL,0x3b2dd04b78c45LL),
+      reale(19643005,0x3eb0d373a0e0LL),-reale(11359402,0x98e8f09139c0LL),
+      reale(11381255,0xacc1b03fd73a0LL),-reale(7834592,0x92741bdd3b00LL),
+      reale(6664656,0xa317edb25b660LL),-reale(5516050,0x3ff87cc43bc40LL),
+      reale(3774293,0xd5e83edc68920LL),-reale(3594547,0xbec9f61701d80LL),
+      reale(1908400,0x61c5f793c0be0LL),-reale(1786093,0xfaf3f7a19bec0LL),
+      reale(579905,0x9d50696085ea0LL),reale(150042,0xa9efa9004c604LL),
+      reale(20509061187LL,0x3b2dd04b78c45LL),
       // C4[2], coeff of eps^17, polynomial in n of order 12
-      reale(0x248be97LL,0x1e48683dc9800LL),
-      reale(-0x11c1252LL,0x8d886e0720600LL),
-      reale(0x132e820LL,0xb841223d75400LL),
-      reale(-0xaf6a02LL,0x67c70d66ce200LL),reale(0xabd6beLL,0x21fd3747b1000LL),
-      reale(-0x79788dLL,0xf8aeca1163e00LL),reale(0x5fc04eLL,0xa8a2fa972cc00LL),
-      reale(-0x537d4eLL,0xf6ba20bb91a00LL),reale(0x3240f2LL,0x6eab44c698800LL),
-      reale(-0x31b62aLL,0xaa6209a607600LL),reale(0x1560e1LL,0x756ea738a4400LL),
-      reale(-0x1094a6LL,0xb6346b575200LL),reale(610116LL,0x479bdc6c290e0LL),
-      reale(0x4c66f7043LL,0x3b2dd04b78c45LL),
+      reale(38321815,0x1e48683dc9800LL),-reale(18616913,0x727791f8dfa00LL),
+      reale(20113440,0xb841223d75400LL),-reale(11495937,0x9838f29931e00LL),
+      reale(11261630,0x21fd3747b1000LL),-reale(7960716,0x75135ee9c200LL),
+      reale(6275150,0xa8a2fa972cc00LL),-reale(5471565,0x945df446e600LL),
+      reale(3293426,0x6eab44c698800LL),-reale(3257897,0x559df659f8a00LL),
+      reale(1401057,0x756ea738a4400LL),-reale(1086629,0xf49cb94a8ae00LL),
+      reale(610116,0x479bdc6c290e0LL),reale(20509061187LL,0x3b2dd04b78c45LL),
       // C4[2], coeff of eps^16, polynomial in n of order 13
-      reale(0x62050b9LL,0x98fe5a9192500LL),
-      reale(-0x2677ae9LL,0x333f7657aec00LL),
-      reale(0x264e114LL,0x6e617f3b73300LL),
-      reale(-0x11c1132LL,0x6aac92aa89a00LL),
-      reale(0x1390795LL,0xd39b96f5ec100LL),
-      reale(-0xb265f0LL,0x83eeab44f4800LL),reale(0xa78bc2LL,0x40d1adbe6cf00LL),
-      reale(-0x7bab0eLL,0xb5bcc4049f600LL),reale(0x575fc7LL,0xc3b2b2965d00LL),
-      reale(-0x51597cLL,0x5baa627f3a400LL),reale(0x290935LL,0x7cf2f82446b00LL),
-      reale(-0x28df61LL,0x86fb00d475200LL),reale(779755LL,0xfacbca777f900LL),
-      reale(203539LL,0xb4670b88476e0LL),reale(0x4c66f7043LL,0x3b2dd04b78c45LL),
+      reale(102781113,0x98fe5a9192500LL),-reale(40336104,0xccc089a851400LL),
+      reale(40165652,0x6e617f3b73300LL),-reale(18616625,0x95536d5576600LL),
+      reale(20514709,0xd39b96f5ec100LL),-reale(11691503,0x7c1154bb0b800LL),
+      reale(10980290,0x40d1adbe6cf00LL),-reale(8104717,0x4a433bfb60a00LL),
+      reale(5726151,0xc3b2b2965d00LL),-reale(5331323,0xa4559d80c5c00LL),
+      reale(2689333,0x7cf2f82446b00LL),-reale(2678624,0x7904ff2b8ae00LL),
+      reale(779755,0xfacbca777f900LL),reale(203539,0xb4670b88476e0LL),
+      reale(20509061187LL,0x3b2dd04b78c45LL),
       // C4[2], coeff of eps^15, polynomial in n of order 14
-      reale(-0x1637607LL,0x7417d1cb19c00LL),
-      reale(-0xf4a37f1LL,0xed9b0a7914a00LL),
-      reale(0x685a0eeLL,0x9692235ce1800LL),
-      reale(-0x2626f1aLL,0x890b853866600LL),
-      reale(0x28415acLL,0x9175627089400LL),
-      reale(-0x11c63deLL,0xc9f2fbcc70200LL),
-      reale(0x13d0a4bLL,0x32d7f69c1000LL),reale(-0xb6c839LL,0xc3903196e1e00LL),
-      reale(0x9fb99bLL,0x890cbd2438c00LL),reale(-0x7dd5a8LL,0xa26a576d6ba00LL),
-      reale(0x4c02caLL,0x2e83f5dba0800LL),reale(-0x4c42fdLL,0xb72db6f1bd600LL),
-      reale(0x1dc01cLL,0xd6b9d613a8400LL),reale(-0x19bddbLL,0xbd7bf32987200LL),
-      reale(881316LL,0x5154c853b06e0LL),reale(0x4c66f7043LL,0x3b2dd04b78c45LL),
+      -reale(23295494,0x8be82e34e6400LL),-reale(256522224,0x1264f586eb600LL),
+      reale(109420782,0x9692235ce1800LL),-reale(40005401,0x76f47ac799a00LL),
+      reale(42210732,0x9175627089400LL),-reale(18637789,0x360d04338fe00LL),
+      reale(20777547,0x32d7f69c1000LL),-reale(11978808,0x3c6fce691e200LL),
+      reale(10467739,0x890cbd2438c00LL),-reale(8246695,0x5d95a89294600LL),
+      reale(4981450,0x2e83f5dba0800LL),-reale(4997884,0x48d2490e42a00LL),
+      reale(1949724,0xd6b9d613a8400LL),-reale(1687002,0x42840cd678e00LL),
+      reale(881316,0x5154c853b06e0LL),reale(20509061187LL,0x3b2dd04b78c45LL),
       // C4[2], coeff of eps^14, polynomial in n of order 15
-      reale(-0x12d3870aLL,0xfed855e046aa0LL),
-      reale(0x1af1fec8LL,0x32f06289dc340LL),
-      reale(-0x22b4154LL,0x36fa2d22f43e0LL),
-      reale(-0xfd64a70LL,0xbeb3c369ad080LL),
-      reale(0x70055d1LL,0xb44ff33f8ed20LL),
-      reale(-0x258d145LL,0x461ade3a39dc0LL),
-      reale(0x2a627afLL,0x98c20ae94660LL),
-      reale(-0x11de8e4LL,0x6f772f6318b00LL),
-      reale(0x13d399eLL,0x74772cb6e2fa0LL),
-      reale(-0xbd323eLL,0x3c6343e91f840LL),reale(0x9300dfLL,0x48be8ec7788e0LL),
-      reale(-0x7f0b78LL,0x70edb92224580LL),reale(0x3d3a8fLL,0x8a9763f933220LL),
-      reale(-0x415d9eLL,0xf1ea42a8bd2c0LL),reale(0x103fd6LL,0x3e0322e890b60LL),
-      reale(281445LL,0x189dacfa2913cLL),reale(0x4c66f7043LL,0x3b2dd04b78c45LL),
+      -reale(315852553,0x127aa1fb9560LL),reale(452067016,0x32f06289dc340LL),
+      -reale(36389203,0xc905d2dd0bc20LL),-reale(265701999,0x414c3c9652f80LL),
+      reale(117462481,0xb44ff33f8ed20LL),-reale(39375172,0xb9e521c5c6240LL),
+      reale(44443567,0x98c20ae94660LL),-reale(18737379,0x9088d09ce7500LL),
+      reale(20789662,0x74772cb6e2fa0LL),-reale(12399165,0xc39cbc16e07c0LL),
+      reale(9634015,0x48be8ec7788e0LL),-reale(8326007,0x8f1246dddba80LL),
+      reale(4012687,0x8a9763f933220LL),-reale(4283805,0xe15bd5742d40LL),
+      reale(1064918,0x3e0322e890b60LL),reale(281445,0x189dacfa2913cLL),
+      reale(20509061187LL,0x3b2dd04b78c45LL),
       // C4[2], coeff of eps^13, polynomial in n of order 16
-      reale(0x464e57LL,0xc9d7900c88800LL),reale(0x2a76e7cLL,0x61b96ac1eb380LL),
-      reale(-0x13176d8fLL,0x5d892cbaf1700LL),
-      reale(0x1c18ba77LL,0x4d0623cc86a80LL),
-      reale(-0x321a1a4LL,0xbfb0e5a4f6600LL),
-      reale(-0x10682b73LL,0xccb744abc180LL),
-      reale(0x7976d08LL,0xbf0504ec13500LL),
-      reale(-0x2499455LL,0x8b7cc14387880LL),
-      reale(0x2ca231aLL,0x6a3245e5c4400LL),
-      reale(-0x122405bLL,0xc425eef0e4f80LL),
-      reale(0x136dcbaLL,0xf7fc04d85300LL),reale(-0xc63e4eLL,0x7da8fffdd0680LL),
-      reale(0x7fc999LL,0xba502a56d2200LL),reale(-0x7cedeaLL,0xf72b757445d80LL),
-      reale(0x2b02dcLL,0x7113503f27100LL),reale(-0x2b403fLL,0xdfc70fb41480LL),
-      reale(0x146a3dLL,0xc906f381aecf8LL),
-      reale(0x4c66f7043LL,0x3b2dd04b78c45LL),
+      reale(4607575,0xc9d7900c88800LL),reale(44527228,0x61b96ac1eb380LL),
+      -reale(320302478,0xa276d3450e900LL),reale(471382647,0x4d0623cc86a80LL),
+      -reale(52535715,0x404f1a5b09a00LL),-reale(275262322,0xf3348bb543e80LL),
+      reale(127364360,0xbf0504ec13500LL),-reale(38376532,0x74833ebc78780LL),
+      reale(46801690,0x6a3245e5c4400LL),-reale(19021914,0x3bda110f1b080LL),
+      reale(20372666,0xf7fc04d85300LL),-reale(12992077,0x825700022f980LL),
+      reale(8374681,0xba502a56d2200LL),-reale(8187369,0x8d48a8bba280LL),
+      reale(2818780,0x7113503f27100LL),-reale(2834494,0xf2038f04beb80LL),
+      reale(1337917,0xc906f381aecf8LL),reale(20509061187LL,0x3b2dd04b78c45LL),
       // C4[2], coeff of eps^12, polynomial in n of order 17
-      reale(388658LL,0x19c7c6f8ea2c0LL),reale(0x110f13LL,0xaadcbdb38ac00LL),
-      reale(0x44f688LL,0xaee28ee393540LL),reale(0x2a3a167LL,0xe09b9f50af680LL),
-      reale(-0x135760f0LL,0xfa3ff451d67c0LL),
-      reale(0x1d5df81cLL,0x7d1cc3fd18100LL),
-      reale(-0x454aadbLL,0x4bd7f940e7a40LL),
-      reale(-0x10fb9d46LL,0xa8337b5aa8b80LL),
-      reale(0x854bb7cLL,0x33e950dc3acc0LL),
-      reale(-0x233fdffLL,0x108f3ffa45600LL),
-      reale(0x2ed8284LL,0xa052562f03f40LL),
-      reale(-0x12c4f6cLL,0x455afdd952080LL),
-      reale(0x125c4c6LL,0xc3af9265b71c0LL),
-      reale(-0xd1e3eeLL,0xd0f69f3f32b00LL),reale(0x64b5a8LL,0x6565773f88440LL),
-      reale(-0x71df96LL,0x40467d1acb580LL),reale(0x162aa7LL,0x6b2cd84feb6c0LL),
-      reale(390635LL,0x965de9321fbe8LL),reale(0x4c66f7043LL,0x3b2dd04b78c45LL),
+      reale(388658,0x19c7c6f8ea2c0LL),reale(1117971,0xaadcbdb38ac00LL),
+      reale(4519560,0xaee28ee393540LL),reale(44278119,0xe09b9f50af680LL),
+      -reale(324493551,0x5c00bae29840LL),reale(492697628,0x7d1cc3fd18100LL),
+      -reale(72657626,0xb42806bf185c0LL),-reale(284925253,0x57cc84a557480LL),
+      reale(139770748,0x33e950dc3acc0LL),-reale(36961790,0xef70c005baa00LL),
+      reale(49119876,0xa052562f03f40LL),-reale(19681131,0xbaa50226adf80LL),
+      reale(19252422,0xc3af9265b71c0LL),-reale(13755373,0x2f0960c0cd500LL),
+      reale(6600104,0x6565773f88440LL),-reale(7462805,0xbfb982e534a80LL),
+      reale(1452711,0x6b2cd84feb6c0LL),reale(390635,0x965de9321fbe8LL),
+      reale(20509061187LL,0x3b2dd04b78c45LL),
       // C4[2], coeff of eps^11, polynomial in n of order 18
-      reale(73868LL,0xf53613318fd00LL),reale(155158LL,0x6bea1fc037e80LL),
-      reale(370865LL,0xe686995a3a800LL),reale(0x10711bLL,0xb6b00d00e5180LL),
-      reale(0x4346d6LL,0x1d5f244685300LL),reale(0x29d4026LL,0xf94485a638480LL),
-      reale(-0x139055a1LL,0xdab4c7fcfbe00LL),
-      reale(0x1ec53d8aLL,0x48cfde1d3d780LL),
-      reale(-0x5d7cb8fLL,0x38dd86fe2a900LL),
-      reale(-0x1187fe00LL,0xbe22a3400a80LL),
-      reale(0x946226dLL,0xc58331ae9d400LL),
-      reale(-0x218a06fLL,0x93c7df2f8dd80LL),
-      reale(0x30a8d25LL,0xfcae9f00dff00LL),
-      reale(-0x140f356LL,0x94f7bf31f1080LL),
-      reale(0x103f195LL,0xa0ab037f7ea00LL),
-      reale(-0xdd91faLL,0xdf676e1036380LL),reale(0x41f2a0LL,0xda1143d705500LL),
-      reale(-0x51369eLL,0x61264bb869680LL),reale(0x210ac3LL,0xa5af00ad58358LL),
-      reale(0x4c66f7043LL,0x3b2dd04b78c45LL),
+      reale(73868,0xf53613318fd00LL),reale(155158,0x6bea1fc037e80LL),
+      reale(370865,0xe686995a3a800LL),reale(1077531,0xb6b00d00e5180LL),
+      reale(4409046,0x1d5f244685300LL),reale(43860006,0xf94485a638480LL),
+      -reale(328226208,0x254b380304200LL),reale(516242826,0x48cfde1d3d780LL),
+      -reale(98028430,0xc7227901d5700LL),-reale(294125055,0xf41dd5cbff580LL),
+      reale(155591277,0xc58331ae9d400LL),-reale(35168366,0x6c3820d072280LL),
+      reale(51023141,0xfcae9f00dff00LL),-reale(21033813,0x6b0840ce0ef80LL),
+      reale(17035669,0xa0ab037f7ea00LL),-reale(14520825,0x209891efc9c80LL),
+      reale(4321952,0xda1143d705500LL),-reale(5322397,0x9ed9b44796980LL),
+      reale(2165443,0xa5af00ad58358LL),reale(20509061187LL,0x3b2dd04b78c45LL),
       // C4[2], coeff of eps^10, polynomial in n of order 19
-      reale(19809LL,0x63304b335a660LL),reale(35566LL,0xcb4164f348e40LL),
-      reale(68577LL,0xe86c972757e20LL),reale(145245LL,0xbc9cc7446e200LL),
-      reale(350489LL,0x7e29a3d4285e0LL),reale(0xfb676LL,0x45087f82835c0LL),
-      reale(0x412afaLL,0x2203011585da0LL),reale(0x2937edeLL,0xa65b618eca980LL),
-      reale(-0x13bdb295LL,0x576332adca560LL),
-      reale(0x205195efLL,0x200e3727c5d40LL),
-      reale(-0x7c632f7LL,0xc474e2af2fd20LL),
-      reale(-0x11fc547cLL,0xd3b27c9077100LL),
-      reale(0xa7f0802LL,0x8ddfe73d104e0LL),
-      reale(-0x1fbd3e8LL,0x73ed1d57a04c0LL),
-      reale(0x3152629LL,0x23cc103525ca0LL),
-      reale(-0x16778e7LL,0x8901f18f03880LL),
-      reale(0xca2edcLL,0x69c1c450ca460LL),reale(-0xdeb585LL,0x2757f5c2a2c40LL),
-      reale(0x1c3526LL,0x7d3564e37c20LL),reale(506231LL,0x2a6100a6a6db4LL),
-      reale(0x4c66f7043LL,0x3b2dd04b78c45LL),
+      reale(19809,0x63304b335a660LL),reale(35566,0xcb4164f348e40LL),
+      reale(68577,0xe86c972757e20LL),reale(145245,0xbc9cc7446e200LL),
+      reale(350489,0x7e29a3d4285e0LL),reale(1029750,0x45087f82835c0LL),
+      reale(4270842,0x2203011585da0LL),reale(43220702,0xa65b618eca980LL),
+      -reale(331199124,0xa89ccd5235aa0LL),reale(542217711,0x200e3727c5d40LL),
+      -reale(130429686,0x3b8b1d50d02e0LL),-reale(301749371,0x2c4d836f88f00LL),
+      reale(176097282,0x8ddfe73d104e0LL),-reale(33280999,0x8c12e2a85fb40LL),
+      reale(51717673,0x23cc103525ca0LL),-reale(23558374,0x76fe0e70fc780LL),
+      reale(13250268,0x69c1c450ca460LL),-reale(14595460,0xd8a80a3d5d3c0LL),
+      reale(1848614,0x7d3564e37c20LL),reale(506231,0x2a6100a6a6db4LL),
+      reale(20509061187LL,0x3b2dd04b78c45LL),
       // C4[2], coeff of eps^9, polynomial in n of order 20
-      reale(6397LL,0xfcd62c9faa400LL),reale(10440LL,0x3fc8ff8e75700LL),
-      reale(17841LL,0xb7bede1dba00LL),reale(32272LL,0x7935213063d00LL),
-      reale(62742LL,0x8933a9bfd5000LL),reale(134128LL,0x223daf23d6300LL),
-      reale(327129LL,0xfca43cca0e600LL),reale(973230LL,0x31dda9e44900LL),
-      reale(0x3e8918LL,0x3528b970ffc00LL),reale(0x2854891LL,0xe5d54d5326f00LL),
-      reale(-0x13d86e35LL,0x130258a921200LL),
-      reale(0x2204540aLL,0x2878cf4ff5500LL),
-      reale(-0xa4650f0LL,0xa8774aceea800LL),
-      reale(-0x12377ba5LL,0x639a033827b00LL),
-      reale(0xc19598aLL,0xbd0aab0ad3e00LL),
-      reale(-0x1ebd7dbLL,0xc0fbf92136100LL),
-      reale(0x2f4e7c7LL,0xc747777555400LL),
-      reale(-0x1a78aa1LL,0xcdc4004e98700LL),
-      reale(0x74c561LL,0x1c15203ae6a00LL),reale(-0xb3ca97LL,0xd487d80dc6d00LL),
-      reale(0x3a28edLL,0x362856b8e6d30LL),
-      reale(0x4c66f7043LL,0x3b2dd04b78c45LL),
+      reale(6397,0xfcd62c9faa400LL),reale(10440,0x3fc8ff8e75700LL),
+      reale(17841,0xb7bede1dba00LL),reale(32272,0x7935213063d00LL),
+      reale(62742,0x8933a9bfd5000LL),reale(134128,0x223daf23d6300LL),
+      reale(327129,0xfca43cca0e600LL),reale(973230,0x31dda9e44900LL),
+      reale(4098328,0x3528b970ffc00LL),reale(42289297,0xe5d54d5326f00LL),
+      -reale(332951092,0xecfda756dee00LL),reale(570709002,0x2878cf4ff5500LL),
+      -reale(172380399,0x5788b53115800LL),-reale(305626020,0x9c65fcc7d8500LL),
+      reale(202987914,0xbd0aab0ad3e00LL),-reale(32233434,0x3f0406dec9f00LL),
+      reale(49604551,0xc747777555400LL),-reale(27757216,0x323bffb167900LL),
+      reale(7652705,0x1c15203ae6a00LL),-reale(11782806,0x2b7827f239300LL),
+      reale(3811565,0x362856b8e6d30LL),reale(20509061187LL,0x3b2dd04b78c45LL),
       // C4[2], coeff of eps^8, polynomial in n of order 21
-      reale(2297LL,0xe5959dcaf9680LL),reale(3515LL,0xaf44e93439a00LL),
-      reale(5557LL,0xf844363205d80LL),reale(9134LL,0x3148872cf3100LL),
-      reale(15730LL,0x1f27208afe480LL),reale(28695LL,0xbe2e993314800LL),
-      reale(56314LL,0x2c7b05479ab80LL),reale(121661LL,0x287926e675f00LL),
-      reale(300328LL,0xfc8a376113280LL),reale(906274LL,0xf1fb199eef600LL),
-      reale(0x3b3ff8LL,0x5f528c391f980LL),reale(0x2711f7cLL,0xe6e08c5558d00LL),
-      reale(-0x13d5918eLL,0x7d7d5b5af8080LL),
-      reale(0x23da480bLL,0xf6ba284c8a400LL),
-      reale(-0xd8ea982LL,0x9bd02ddc54780LL),
-      reale(-0x11f820b7LL,0x41a6893a5bb00LL),
-      reale(0xe32cb81LL,0x57c5b91e6ce80LL),
-      reale(-0x20fb023LL,0xbe1353b0a5200LL),
-      reale(0x27c3b47LL,0xee870caef9580LL),
-      reale(-0x1fa5626LL,0xf5ba90863e900LL),
-      reale(0x157973LL,0x27b05f0931c80LL),reale(329283LL,0x26010fabff570LL),
-      reale(0x4c66f7043LL,0x3b2dd04b78c45LL),
+      reale(2297,0xe5959dcaf9680LL),reale(3515,0xaf44e93439a00LL),
+      reale(5557,0xf844363205d80LL),reale(9134,0x3148872cf3100LL),
+      reale(15730,0x1f27208afe480LL),reale(28695,0xbe2e993314800LL),
+      reale(56314,0x2c7b05479ab80LL),reale(121661,0x287926e675f00LL),
+      reale(300328,0xfc8a376113280LL),reale(906274,0xf1fb199eef600LL),
+      reale(3883000,0x5f528c391f980LL),reale(40968060,0xe6e08c5558d00LL),
+      -reale(332763533,0x8282a4a507f80LL),reale(601507851,0xf6ba284c8a400LL),
+      -reale(227453313,0x642fd223ab880LL),-reale(301473974,0xbe5976c5a4500LL),
+      reale(238209921,0x57c5b91e6ce80LL),-reale(34582562,0x41ecac4f5ae00LL),
+      reale(41696071,0xee870caef9580LL),-reale(33183269,0xa456f79c1700LL),
+      reale(1407347,0x27b05f0931c80LL),reale(329283,0x26010fabff570LL),
+      reale(20509061187LL,0x3b2dd04b78c45LL),
       // C4[2], coeff of eps^7, polynomial in n of order 22
       real(0x367dbe5da7953e00LL),real(0x4f9a921ac6fb1900LL),
-      real(0x773454548df74400LL),reale(2938LL,0xbc18faed4af00LL),
-      reale(4681LL,0x407a350a64a00LL),reale(7756LL,0xa0ed83ee90500LL),
-      reale(13477LL,0x2fbfd87edd000LL),reale(24826LL,0x9ea174e739b00LL),
-      reale(49249LL,0xd3391f1d95600LL),reale(107696LL,0xcac2013cff100LL),
-      reale(269571LL,0xe064d3a745c00LL),reale(826840LL,0x70825da398700LL),
-      reale(0x3724baLL,0x7ef0aa40a6200LL),reale(0x254ed8eLL,0xc5673698bdd00LL),
-      reale(-0x13a3a62cLL,0xac09a5366e800LL),
-      reale(0x25c56c79LL,0xfeb5c44027300LL),
-      reale(-0x11eb40c6LL,0x130f604156e00LL),
-      reale(-0x10bb26e7LL,0xf311f5df8c900LL),
-      reale(0x10d91d96LL,0x7b726e8a17400LL),
-      reale(-0x2c8e4a1LL,0xee20173aa5f00LL),
-      reale(0x1670215LL,0x90f427ad67a00LL),
-      reale(-0x2047cb8LL,0xa153ca0f2b500LL),
-      reale(0x71c5e9LL,0x7c1f0b332cab0LL),
-      reale(0x4c66f7043LL,0x3b2dd04b78c45LL),
+      real(0x773454548df74400LL),reale(2938,0xbc18faed4af00LL),
+      reale(4681,0x407a350a64a00LL),reale(7756,0xa0ed83ee90500LL),
+      reale(13477,0x2fbfd87edd000LL),reale(24826,0x9ea174e739b00LL),
+      reale(49249,0xd3391f1d95600LL),reale(107696,0xcac2013cff100LL),
+      reale(269571,0xe064d3a745c00LL),reale(826840,0x70825da398700LL),
+      reale(3613882,0x7ef0aa40a6200LL),reale(39120270,0xc5673698bdd00LL),
+      -reale(329492011,0x53f65ac991800LL),reale(633695353,0xfeb5c44027300LL),
+      -reale(300630213,0xecf09fbea9200LL),-reale(280700646,0xcee0a2073700LL),
+      reale(282664342,0x7b726e8a17400LL),-reale(46720160,0x11dfe8c55a100LL),
+      reale(23527957,0x90f427ad67a00LL),-reale(33848503,0x5eac35f0d4b00LL),
+      reale(7456233,0x7c1f0b332cab0LL),reale(20509061187LL,0x3b2dd04b78c45LL),
       // C4[2], coeff of eps^6, polynomial in n of order 23
       real(0x14f52a063dc5fc20LL),real(0x1d93a1e9ceb48740LL),
       real(0x2a911c303b723a60LL),real(0x3ea26bba66a54980LL),
-      real(0x5e84fad71b3608a0LL),reale(2349LL,0x85d3117e94bc0LL),
-      reale(3776LL,0x1c9d51cf2c6e0LL),reale(6317LL,0x5193932d16e00LL),
-      reale(11091LL,0xc7716ff97d520LL),reale(20667LL,0xe33c2c4a29040LL),
-      reale(41523LL,0x1a30a42ae9360LL),reale(92100LL,0xbd0a1f1419280LL),
-      reale(234309LL,0x70b77706661a0LL),reale(732507LL,0x72fafb4df54c0LL),
-      reale(0x320008LL,0xe462aef209fe0LL),reale(0x22dbcdeLL,0x4c4d10a4b700LL),
-      reale(-0x132620deLL,0x8df40e97cae20LL),
-      reale(0x279e24c2LL,0x65892c55e9940LL),
-      reale(-0x17be2cbaLL,0xd47d10be3ec60LL),
-      reale(-0xd74bd77LL,0xdbfaff29db80LL),
-      reale(0x13b0d7ddLL,0xbb7252695baa0LL),
-      reale(-0x4e95abdLL,0xc80efb51f5dc0LL),
-      reale(-0x4bd947LL,0xad40a333378e0LL),
-      reale(-0x32055cLL,0x61b48ef01f1ecLL),
-      reale(0x4c66f7043LL,0x3b2dd04b78c45LL),
+      real(0x5e84fad71b3608a0LL),reale(2349,0x85d3117e94bc0LL),
+      reale(3776,0x1c9d51cf2c6e0LL),reale(6317,0x5193932d16e00LL),
+      reale(11091,0xc7716ff97d520LL),reale(20667,0xe33c2c4a29040LL),
+      reale(41523,0x1a30a42ae9360LL),reale(92100,0xbd0a1f1419280LL),
+      reale(234309,0x70b77706661a0LL),reale(732507,0x72fafb4df54c0LL),
+      reale(3276808,0xe462aef209fe0LL),reale(36551902,0x4c4d10a4b700LL),
+      -reale(321265885,0x720bf168351e0LL),reale(664675522,0x65892c55e9940LL),
+      -reale(398339257,0x2b82ef41c13a0LL),-reale(225754486,0xf240500d62480LL),
+      reale(330356701,0xbb7252695baa0LL),-reale(82401980,0x37f104ae0a240LL),
+      -reale(4970822,0x52bf5cccc8720LL),-reale(3278171,0x9e4b710fe0e14LL),
+      reale(20509061187LL,0x3b2dd04b78c45LL),
       // C4[2], coeff of eps^5, polynomial in n of order 24
       real(0x7d5242068d47400LL),real(0xac3832c9e621080LL),
       real(0xf0840d5e59cf500LL),real(0x155fabefd3362980LL),
       real(0x1f01ffac4c30b600LL),real(0x2e0489bbd6aca280LL),
       real(0x461560bdbc05f700LL),real(0x6df6210d29c3bb80LL),
-      reale(2857LL,0xf2e1b87d2f800LL),reale(4836LL,0xd8d8f4249b480LL),
-      reale(8600LL,0x17271d36df900LL),reale(16248LL,0x163bc1ffccd80LL),
-      reale(33146LL,0xc23750bad3a00LL),reale(74792LL,0x260310eab4680LL),
-      reale(194024LL,0xef2cdae46fb00LL),reale(620545LL,0xfcf47db535f80LL),
-      reale(0x2b8b50LL,0x7228ad7b17c00LL),reale(0x1f74e40LL,0x1c4ce82435880LL),
-      reale(-0x122cfb29LL,0x7c10d8d02fd00LL),
-      reale(0x28ff4a54LL,0xf9e0f9c397180LL),
-      reale(-0x1f608828LL,0x5e31db7d1be00LL),
-      reale(-0x6088182LL,0x4f9a39083ea80LL),
-      reale(0x1483dee1LL,0xf79ee4a13ff00LL),
-      reale(-0x908141aLL,0xf97d5d2210380LL),
-      reale(0xe96e56LL,0x380aba4a19708LL),
-      reale(0x4c66f7043LL,0x3b2dd04b78c45LL),
+      reale(2857,0xf2e1b87d2f800LL),reale(4836,0xd8d8f4249b480LL),
+      reale(8600,0x17271d36df900LL),reale(16248,0x163bc1ffccd80LL),
+      reale(33146,0xc23750bad3a00LL),reale(74792,0x260310eab4680LL),
+      reale(194024,0xef2cdae46fb00LL),reale(620545,0xfcf47db535f80LL),
+      reale(2853712,0x7228ad7b17c00LL),reale(32984640,0x1c4ce82435880LL),
+      -reale(304937768,0x83ef272fd0300LL),reale(687819348,0xf9e0f9c397180LL),
+      -reale(526420007,0xa1ce2482e4200LL),-reale(101220737,0xb065c6f7c1580LL),
+      reale(344186593,0xf79ee4a13ff00LL),-reale(151524377,0x682a2ddefc80LL),
+      reale(15298134,0x380aba4a19708LL),reale(20509061187LL,0x3b2dd04b78c45LL),
       // C4[2], coeff of eps^4, polynomial in n of order 25
       real(0x2b077c634ede840LL),real(0x39e80232e455600LL),
       real(0x4f004399e9803c0LL),real(0x6d6a8dd96e7d980LL),
       real(0x9a16639c690ff40LL),real(0xdd0eb6a29ee1d00LL),
       real(0x143ca2e567649ac0LL),real(0x1e583a687f6ce080LL),
       real(0x2ebb5ae27bca9640LL),real(0x4a366ef6d0a8e400LL),
-      real(0x7a244f6987aeb1c0LL),reale(3355LL,0xff6a995ee780LL),
-      reale(6059LL,0x95d9afc38ad40LL),reale(11647LL,0x91c4ac30bab00LL),
-      reale(24220LL,0xbe377a4d448c0LL),reale(55835LL,0xd9394a033ee80LL),
-      reale(148417LL,0x27a782b394440LL),reale(488256LL,0xe5126fdac7200LL),
-      reale(0x237053LL,0xb040a0735fc0LL),reale(0x1ab8c92LL,0x3d9464fe1f580LL),
-      reale(-0x10652586LL,0xd6f2b98ea5b40LL),
-      reale(0x28ea01e9LL,0x6984a82213900LL),
-      reale(-0x286594f9LL,0x60904c969f6c0LL),
-      reale(0x9081419LL,0x682a2ddefc80LL),reale(0xa12db56LL,0xfd6a53329f240LL),
-      reale(-0x5148b4fLL,0xec568463291f8LL),
-      reale(0x4c66f7043LL,0x3b2dd04b78c45LL),
+      real(0x7a244f6987aeb1c0LL),reale(3355,0xff6a995ee780LL),
+      reale(6059,0x95d9afc38ad40LL),reale(11647,0x91c4ac30bab00LL),
+      reale(24220,0xbe377a4d448c0LL),reale(55835,0xd9394a033ee80LL),
+      reale(148417,0x27a782b394440LL),reale(488256,0xe5126fdac7200LL),
+      reale(2322515,0xb040a0735fc0LL),reale(28019858,0x3d9464fe1f580LL),
+      -reale(275064197,0x290d46715a4c0LL),reale(686424553,0x6984a82213900LL),
+      -reale(677745912,0x9f6fb36960940LL),reale(151524377,0x682a2ddefc80LL),
+      reale(169007958,0xfd6a53329f240LL),-reale(85232462,0x13a97b9cd6e08LL),
+      reale(20509061187LL,0x3b2dd04b78c45LL),
       // C4[2], coeff of eps^3, polynomial in n of order 26
       real(0xc4c78b5f73e700LL),real(0x1046756e5efb980LL),
       real(0x15cbc98d9fba400LL),real(0x1d9279681ffce80LL),
@@ -5053,16 +4825,14 @@ namespace GeographicLib {
       real(0xadfad5eb325db00LL),real(0x1083ab8775a8cd80LL),
       real(0x19c9d8efc1ad1800LL),real(0x29945e7f0056e280LL),
       real(0x4594bf2102ba5500LL),real(0x79a9d12705de9780LL),
-      reale(3587LL,0xb2b264e0cd200LL),reale(7053LL,0x1d58043372c80LL),
-      reale(15040LL,0x44c8073c3cf00LL),reale(35667LL,0x702872e47e180LL),
-      reale(97902LL,0x6929355be8c00LL),reale(334186LL,0x1d1de4e87f680LL),
-      reale(0x19542bLL,0xed2beccfc4900LL),reale(0x1421dbfLL,0x53559189eab80LL),
-      reale(-0xd3da750LL,0x738f3f8fc4600LL),
-      reale(0x24d22a8dLL,0x694fabb034080LL),
-      reale(-0x2dda3ea7LL,0x902db171dc300LL),
-      reale(0x1b183c4bLL,0x1387e899cf580LL),
-      reale(-0x6358dd2LL,0xcb8630076b268LL),
-      reale(0x4c66f7043LL,0x3b2dd04b78c45LL),
+      reale(3587,0xb2b264e0cd200LL),reale(7053,0x1d58043372c80LL),
+      reale(15040,0x44c8073c3cf00LL),reale(35667,0x702872e47e180LL),
+      reale(97902,0x6929355be8c00LL),reale(334186,0x1d1de4e87f680LL),
+      reale(1659947,0xed2beccfc4900LL),reale(21110207,0x53559189eab80LL),
+      -reale(222144335,0x8c70c0703ba00LL),reale(617753229,0x694fabb034080LL),
+      -reale(769277606,0x6fd24e8e23d00LL),reale(454573131,0x1387e899cf580LL),
+      -reale(104173009,0x3479cff894d98LL),
+      reale(20509061187LL,0x3b2dd04b78c45LL),
       // C4[2], coeff of eps^2, polynomial in n of order 27
       real(0x24546bc28a93e0LL),real(0x2f6c4d745b8e40LL),
       real(0x3e90f252c210a0LL),real(0x5380c389acd700LL),
@@ -5072,263 +4842,204 @@ namespace GeographicLib {
       real(0x3c89da46fe8a3a0LL),real(0x5d71643158b3a00LL),
       real(0x948b363af771060LL),real(0xf445a32263b42c0LL),
       real(0x1a1d56e9fe070d20LL),real(0x2ecb290f0241eb80LL),
-      real(0x58a5da95527fb9e0LL),reale(2876LL,0x680343126d440LL),
-      reale(6354LL,0x3e35c062e36a0LL),reale(15689LL,0x7d2910c199d00LL),
-      reale(45107LL,0x47d6102c9a360LL),reale(162386LL,0x35cf6d6d5e5c0LL),
-      reale(857038LL,0x54e3334f72020LL),reale(0xb1da29LL,0x4f45203874e80LL),
-      reale(-0x7d0d651LL,0x44365584dcce0LL),
-      reale(0x1694323eLL,0x9046972ad7740LL),
-      reale(-0x18d63745LL,0x2e18c01dac9a0LL),
-      reale(0x95054b9LL,0xceb6b7f4df464LL),
-      reale(0x4c66f7043LL,0x3b2dd04b78c45LL),
+      real(0x58a5da95527fb9e0LL),reale(2876,0x680343126d440LL),
+      reale(6354,0x3e35c062e36a0LL),reale(15689,0x7d2910c199d00LL),
+      reale(45107,0x47d6102c9a360LL),reale(162386,0x35cf6d6d5e5c0LL),
+      reale(857038,0x54e3334f72020LL),reale(11655721,0x4f45203874e80LL),
+      -reale(131126864,0xbbc9aa7b23320LL),reale(378810942,0x9046972ad7740LL),
+      -reale(416692036,0xd1e73fe253660LL),reale(156259513,0xceb6b7f4df464LL),
+      reale(20509061187LL,0x3b2dd04b78c45LL),
       // C4[3], coeff of eps^29, polynomial in n of order 0
-      real(594728LL),real(0x6a467061d7LL),
+      594728,real(456448303575LL),
       // C4[3], coeff of eps^28, polynomial in n of order 1
-      -real(0xc171ac00LL),real(0x7522aaf0LL),real(0x17609e98859b3LL),
+      -real(3245452288LL),real(1965206256),real(0x17609e98859b3LL),
       // C4[3], coeff of eps^27, polynomial in n of order 2
       -real(0x15f49b7dd3600LL),real(0x7876e24c6900LL),real(0x1f5dd75c0b28LL),
-      reale(4837LL,0x68f14547adebLL),
+      reale(4837,0x68f14547adebLL),
       // C4[3], coeff of eps^26, polynomial in n of order 3
       -real(0x33418e8004000LL),real(0x17b00d59dc000LL),
       -real(0x11669ade1c000LL),real(0xa37322475bc0LL),
-      reale(6709LL,0x6c31d1e089667LL),
+      reale(6709,0x6c31d1e089667LL),
       // C4[3], coeff of eps^25, polynomial in n of order 4
       -real(0xc3e38d2fc36800LL),real(0x6a604d6faf7a00LL),
       -real(0x650b3de948f400LL),real(0x20a6596010be00LL),
-      real(0x88f534a1fae70LL),reale(275086LL,0x53fa9cf60167fLL),
+      real(0x88f534a1fae70LL),reale(275086,0x53fa9cf60167fLL),
       // C4[3], coeff of eps^24, polynomial in n of order 5
       -real(0xdd5f9d233a5800LL),real(0x8b724926c9e000LL),
       -real(0x8af41510346800LL),real(0x3d05686ce77000LL),
       -real(0x2f9901c72df800LL),real(0x1ae74f29ea4ce0LL),
-      reale(223345LL,0xf3eec944ed143LL),
+      reale(223345,0xf3eec944ed143LL),
       // C4[3], coeff of eps^23, polynomial in n of order 6
-      reale(-81631LL,0x30aa006397400LL),reale(60811LL,0x59dd5ef6a6e00LL),
-      reale(-57593LL,0x9ba80fa657800LL),reale(30387LL,0x2572e53b9c200LL),
-      reale(-30168LL,0x1ee4b96f27c00LL),reale(9044LL,0xd72699d03d600LL),
-      reale(2392LL,0x21f43a8f7f830LL),reale(0x3b039d41LL,0x9eb428d5a933LL),
+      -reale(81630,0xcf55ff9c68c00LL),reale(60811,0x59dd5ef6a6e00LL),
+      -reale(57592,0x6457f059a8800LL),reale(30387,0x2572e53b9c200LL),
+      -reale(30167,0xe11b4690d8400LL),reale(9044,0xd72699d03d600LL),
+      reale(2392,0x21f43a8f7f830LL),reale(990092609,0x9eb428d5a933LL),
       // C4[3], coeff of eps^22, polynomial in n of order 7
-      reale(-0x2edbf2LL,0xf0eb506e9c000LL),reale(0x2a38e1LL,0x4d2d51bbc4000LL),
-      reale(-0x236efbLL,0x9dc16f0c4000LL),reale(0x1687c8LL,0x4ed8bf53f8000LL),
-      reale(-0x16be26LL,0x81ec1545bc000LL),reale(616004LL,0x8b84c9ea6c000LL),
-      reale(-517488LL,0xce8712c64000LL),reale(279040LL,0x23dc4dd774ec0LL),
-      reale(0x6af68d05eLL,0x1fa68a0342ac7LL),
+      -reale(3070961,0xf14af9164000LL),reale(2767073,0x4d2d51bbc4000LL),
+      -reale(2322170,0xf623e90f3c000LL),reale(1476552,0x4ed8bf53f8000LL),
+      -reale(1490469,0x7e13eaba44000LL),reale(616004,0x8b84c9ea6c000LL),
+      -reale(517487,0xf3178ed39c000LL),reale(279040,0x23dc4dd774ec0LL),
+      reale(28712685662LL,0x1fa68a0342ac7LL),
       // C4[3], coeff of eps^21, polynomial in n of order 8
-      reale(-0x3d0313LL,0xc8b58adf29800LL),reale(0x4266d0LL,0x89a9dbf785900LL),
-      reale(-0x2ef6ddLL,0xb472360429200LL),reale(0x252cd4LL,0x9b47462d3fb00LL),
-      reale(-0x22086cLL,0xf25c66cdc4c00LL),reale(0x1183edLL,0x7a5199072bd00LL),
-      reale(-0x123fedLL,0x6e44b8c2c8600LL),reale(325643LL,0x5e75ef9e35f00LL),
-      reale(87110LL,0x728c765d95698LL),reale(0x6af68d05eLL,0x1fa68a0342ac7LL),
+      -reale(3998482,0x374a7520d6800LL),reale(4351696,0x89a9dbf785900LL),
+      -reale(3077852,0x4b8dc9fbd6e00LL),reale(2436308,0x9b47462d3fb00LL),
+      -reale(2230379,0xda399323b400LL),reale(1147885,0x7a5199072bd00LL),
+      -reale(1196012,0x91bb473d37a00LL),reale(325643,0x5e75ef9e35f00LL),
+      reale(87110,0x728c765d95698LL),reale(28712685662LL,0x1fa68a0342ac7LL),
       // C4[3], coeff of eps^20, polynomial in n of order 9
-      reale(-0x54796bLL,0xbe5923681ac00LL),reale(0x680df6LL,0x7020ae33aa000LL),
-      reale(-0x3cfb52LL,0x82fb5a29a1400LL),reale(0x3d6fe0LL,0x4a526eb153800LL),
-      reale(-0x2f0357LL,0x6dd208c353c00LL),reale(0x1eeec3LL,0x8c3cc70035000LL),
-      reale(-0x1f3887LL,0xb33643ae4a400LL),reale(787253LL,0x8fa9057e6800LL),
-      reale(-725368LL,0xde2260039cc00LL),reale(368582LL,0x69a43eb914890LL),
-      reale(0x6af68d05eLL,0x1fa68a0342ac7LL),
+      -reale(5536106,0x41a6dc97e5400LL),reale(6819318,0x7020ae33aa000LL),
+      -reale(3996497,0x7d04a5d65ec00LL),reale(4026336,0x4a526eb153800LL),
+      -reale(3081046,0x922df73cac400LL),reale(2027203,0x8c3cc70035000LL),
+      -reale(2046086,0x4cc9bc51b5c00LL),reale(787253,0x8fa9057e6800LL),
+      -reale(725367,0x21dd9ffc63400LL),reale(368582,0x69a43eb914890LL),
+      reale(28712685662LL,0x1fa68a0342ac7LL),
       // C4[3], coeff of eps^19, polynomial in n of order 10
-      reale(-0x8873cbLL,0xc479dd519d600LL),reale(0x9ff0d0LL,0x1e7c948175300LL),
-      reale(-0x521d13LL,0x7cfb6727ff800LL),reale(0x6565cbLL,0x535f47efddd00LL),
-      reale(-0x3db3c2LL,0x645630ec71a00LL),reale(0x36610aLL,0x6253b3df24700LL),
-      reale(-0x2e78cdLL,0x1d0e085eefc00LL),reale(0x17a2b8LL,0x4828fbf665100LL),
-      reale(-0x19dae4LL,0x9c2303ec75e00LL),reale(406057LL,0xe76a74dc3bb00LL),
-      reale(110280LL,0xa64ca1bbeb438LL),reale(0x6af68d05eLL,0x1fa68a0342ac7LL),
+      -reale(8942538,0x3b8622ae62a00LL),reale(10481872,0x1e7c948175300LL),
+      -reale(5381394,0x830498d800800LL),reale(6645195,0x535f47efddd00LL),
+      -reale(4043713,0x9ba9cf138e600LL),reale(3563786,0x6253b3df24700LL),
+      -reale(3045580,0xe2f1f7a110400LL),reale(1548984,0x4828fbf665100LL),
+      -reale(1694435,0x63dcfc138a200LL),reale(406057,0xe76a74dc3bb00LL),
+      reale(110280,0xa64ca1bbeb438LL),reale(28712685662LL,0x1fa68a0342ac7LL),
       // C4[3], coeff of eps^18, polynomial in n of order 11
-      reale(-0x115c944LL,0xc0b6f29128000LL),
-      reale(0xea7ca5LL,0xa666c37198000LL),reale(-0x808d04LL,0x469ec5a258000LL),
-      reale(0xa444d1LL,0x17c6156160000LL),reale(-0x50e048LL,0x2cff6bf0a8000LL),
-      reale(0x5fbb5eLL,0xba1b2aa228000LL),reale(-0x3f2228LL,0x95cd4a43d8000LL),
-      reale(0x2d0aebLL,0x3ffeb65fb0000LL),reale(-0x2c3c07LL,0xc7378bc3a8000LL),
-      reale(0xfae21LL,0x2c3889c5b8000LL),reale(-0x10368fLL,0x8375b5b7d8000LL),
-      reale(500325LL,0x147f19cd83980LL),reale(0x6af68d05eLL,0x1fa68a0342ac7LL),
+      -reale(18204995,0x3f490d6ed8000LL),reale(15367333,0xa666c37198000LL),
+      -reale(8424707,0xb9613a5da8000LL),reale(10765521,3190860555LL<<17),
+      -reale(5300295,0xd300940f58000LL),reale(6273886,0xba1b2aa228000LL),
+      -reale(4137511,0x6a32b5bc28000LL),reale(2951915,0x3ffeb65fb0000LL),
+      -reale(2898950,0x38c8743c58000LL),reale(1027617,0x2c3889c5b8000LL),
+      -reale(1062542,0x7c8a4a4828000LL),reale(500325,0x147f19cd83980LL),
+      reale(28712685662LL,0x1fa68a0342ac7LL),
       // C4[3], coeff of eps^17, polynomial in n of order 12
-      reale(-0x2c7f85aLL,0x86bfab9d9f000LL),
-      reale(0x139fa77LL,0xb72d09f420c00LL),
-      reale(-0x1090fe9LL,0x3b9f41478c800LL),
-      reale(0xfc9140LL,0x8d133b2d84400LL),reale(-0x784a2bLL,0xc3e7e4efea000LL),
-      reale(0xa5d467LL,0x95ba8c80bfc00LL),reale(-0x518725LL,0xce5cb67f07800LL),
-      reale(0x561035LL,0x12558783a3400LL),reale(-0x40ba3cLL,0xb859b4ed35000LL),
-      reale(0x21a30aLL,0xf7d60f21fec00LL),reale(-0x2640adLL,0x91b912bec2800LL),
-      reale(503732LL,0xa322eb69a2400LL),reale(139663LL,0x777cb98300b20LL),
-      reale(0x6af68d05eLL,0x1fa68a0342ac7LL),
+      -reale(46659673,0x7940546261000LL),reale(20576887,0xb72d09f420c00LL),
+      -reale(17371112,0xc460beb873800LL),reale(16552256,0x8d133b2d84400LL),
+      -reale(7883306,0x3c181b1016000LL),reale(10867815,0x95ba8c80bfc00LL),
+      -reale(5343012,0x31a34980f8800LL),reale(5640245,0x12558783a3400LL),
+      -reale(4241979,0x47a64b12cb000LL),reale(2204426,0xf7d60f21fec00LL),
+      -reale(2506924,0x6e46ed413d800LL),reale(503732,0xa322eb69a2400LL),
+      reale(139663,0x777cb98300b20LL),reale(28712685662LL,0x1fa68a0342ac7LL),
       // C4[3], coeff of eps^16, polynomial in n of order 13
-      reale(-0x95993b9LL,0x64b5bc8313000LL),
-      reale(0x19833fdLL,0x84cabd1d8c000LL),
-      reale(-0x2d4f233LL,0xbe71c1af5000LL),
-      reale(0x159e01bLL,0xeea5410a3a000LL),
-      reale(-0xf6d1b2LL,0x3b3115df47000LL),
-      reale(0x10fe38aLL,0xfb6c54d608000LL),
-      reale(-0x70f49eLL,0xdba66dd969000LL),reale(0xa28476LL,0xeb52d29456000LL),
-      reale(-0x54cfeeLL,0x2259552bb000LL),reale(0x479180LL,0xc3737ed884000LL),
-      reale(-0x40d431LL,0x4b44b2549d000LL),reale(0x1516fcLL,0xc755b095f2000LL),
-      reale(-0x191f36LL,0xb38784a86f000LL),reale(701746LL,0xdc0286e009640LL),
-      reale(0x6af68d05eLL,0x1fa68a0342ac7LL),
+      -reale(156865464,0x9b4a437ced000LL),reale(26751997,0x84cabd1d8c000LL),
+      -reale(47510066,0xf418e3e50b000LL),reale(22667291,0xeea5410a3a000LL),
+      -reale(16175537,0xc4ceea20b9000LL),reale(17818506,0xfb6c54d608000LL),
+      -reale(7402653,0x2459922697000LL),reale(10650742,0xeb52d29456000LL),
+      -reale(5558253,0xfdda6aad45000LL),reale(4690304,0xc3737ed884000LL),
+      -reale(4248624,0xb4bb4dab63000LL),reale(1382140,0xc755b095f2000LL),
+      -reale(1646389,0x4c787b5791000LL),reale(701746,0xdc0286e009640LL),
+      reale(28712685662LL,0x1fa68a0342ac7LL),
       // C4[3], coeff of eps^15, polynomial in n of order 14
-      reale(0x9739608LL,0x763cf17d39800LL),
-      reale(0xe6d5383LL,0xf358b9d531400LL),
-      reale(-0xa3d7c6fLL,0x4255ab8af000LL),
-      reale(0x195579eLL,0xe59a1e6b54c00LL),
-      reale(-0x2d81446LL,0x7024246c44800LL),
-      reale(0x18526baLL,0x124aa89300400LL),
-      reale(-0xdeae1dLL,0x9aae697f4a000LL),
-      reale(0x1225919LL,0x27fd86c303c00LL),
-      reale(-0x6cc1e4LL,0xbf5bdfad0f800LL),reale(0x977895LL,0x1876eddc2f400LL),
-      reale(-0x5ae203LL,0x481d0c0e5000LL),reale(0x343742LL,0xde3cf0f552c00LL),
-      reale(-0x3ba70bLL,0xb31925d21a800LL),reale(606166LL,0xec68c0e73e400LL),
-      reale(172919LL,0x9ad62b665b520LL),reale(0x6af68d05eLL,0x1fa68a0342ac7LL),
+      reale(158569992,0x763cf17d39800LL),reale(242045827,0xf358b9d531400LL),
+      -reale(171801710,0xfbdaa54751000LL),reale(26564510,0xe59a1e6b54c00LL),
+      -reale(47715397,0x8fdbdb93bb800LL),reale(25503418,0x124aa89300400LL),
+      -reale(14593564,0x65519680b6000LL),reale(19028249,0x27fd86c303c00LL),
+      -reale(7127523,0x40a42052f0800LL),reale(9926805,0x1876eddc2f400LL),
+      -reale(5956098,0xfb7e2f3f1b000LL),reale(3422018,0xde3cf0f552c00LL),
+      -reale(3909386,0x4ce6da2de5800LL),reale(606166,0xec68c0e73e400LL),
+      reale(172919,0x9ad62b665b520LL),reale(28712685662LL,0x1fa68a0342ac7LL),
       // C4[3], coeff of eps^14, polynomial in n of order 15
-      reale(0xdfc26c8LL,0x48818da828000LL),
-      reale(-0x1af5ada0LL,0xd945577fc8000LL),
-      reale(0xb013e7bLL,0xde7b734758000LL),
-      reale(0xe5c8f15LL,0x4db221ae90000LL),
-      reale(-0xb4b2676LL,0x12b3e1c928000LL),
-      reale(0x19f447dLL,0x55324802d8000LL),
-      reale(-0x2cb5e23LL,0x1a03202358000LL),
-      reale(0x1be83feLL,0x1147d57660000LL),
-      reale(-0xc183feLL,0xc311ac2ba8000LL),
-      reale(0x12fb7b0LL,0x70537f02e8000LL),
-      reale(-0x6efed7LL,0x406e8457d8000LL),reale(0x81688dLL,0x438c3da230000LL),
-      reale(-0x61e562LL,0x36a3647da8000LL),reale(0x1debc0LL,0x685dc04df8000LL),
-      reale(-0x29e3a7LL,0x77cbf92d8000LL),reale(0xf9fcaLL,0x4eef421f04580LL),
-      reale(0x6af68d05eLL,0x1fa68a0342ac7LL),
+      reale(234628808,0x48818da828000LL),-reale(452308383,0x26baa88038000LL),
+      reale(184630907,0xde7b734758000LL),reale(240946965,0x4db221ae90000LL),
+      -reale(189474421,0xed4c1e36d8000LL),reale(27214973,0x55324802d8000LL),
+      -reale(46882338,0xe5fcdfdca8000LL),reale(29262846,2319362995LL<<17),
+      -reale(12682237,0x3cee53d458000LL),reale(19904432,0x70537f02e8000LL),
+      -reale(7274198,0xbf917ba828000LL),reale(8480909,0x438c3da230000LL),
+      -reale(6415713,0xc95c9b8258000LL),reale(1960896,0x685dc04df8000LL),
+      -reale(2745254,0xf883406d28000LL),reale(1023946,0x4eef421f04580LL),
+      reale(28712685662LL,0x1fa68a0342ac7LL),
       // C4[3], coeff of eps^13, polynomial in n of order 16
-      reale(-0x22adf4LL,0xa8028f7589000LL),
-      reale(-0x18e1ea1LL,0xec99313826300LL),
-      reale(0xdd3af0fLL,0xafe6927fcde00LL),
-      reale(-0x1bb5bb95LL,0xdb3a3c686a900LL),
-      reale(0xcd372fbLL,0xaf8273d716c00LL),
-      reale(0xe17c340LL,0xab29f0bfd4f00LL),
-      reale(-0xc89991bLL,0xc980057487a00LL),
-      reale(0x1c16fdbLL,0x2f129bee9500LL),reale(-0x2a6690aLL,0x630204744800LL),
-      reale(0x207b019LL,0xda8305b9abb00LL),
-      reale(-0xa2ee28LL,0x6cabc2bb71600LL),
-      reale(0x1306b52LL,0xbb16c712a0100LL),
-      reale(-0x7b8e30LL,0x3c7a80e132400LL),reale(0x5e0fd5LL,0x8a1d8a85ca700LL),
-      reale(-0x62ff6bLL,0x56d3a913ab200LL),reale(653539LL,0x4a58f163aed00LL),
-      reale(193289LL,0xc4fa7fb371708LL),reale(0x6af68d05eLL,0x1fa68a0342ac7LL),
+      -reale(2272755,0x57fd708a77000LL),-reale(26091168,0x1366cec7d9d00LL),
+      reale(231976719,0xafe6927fcde00LL),-reale(464894868,0x24c5c39795700LL),
+      reale(215184123,0xaf8273d716c00LL),reale(236438336,0xab29f0bfd4f00LL),
+      -reale(210344218,0x367ffa8b78600LL),reale(29454299,0x2f129bee9500LL),
+      -reale(44460297,0xf9cfdfb8bb800LL),reale(34058265,0xda8305b9abb00LL),
+      -reale(10677799,0x93543d448ea00LL),reale(19950418,0xbb16c712a0100LL),
+      -reale(8097327,0xc3857f1ecdc00LL),reale(6164437,0x8a1d8a85ca700LL),
+      -reale(6487914,0xa92c56ec54e00LL),reale(653539,0x4a58f163aed00LL),
+      reale(193289,0xc4fa7fb371708LL),reale(28712685662LL,0x1fa68a0342ac7LL),
       // C4[3], coeff of eps^12, polynomial in n of order 17
-      reale(-136366LL,0x8c5e030195400LL),reale(-450639LL,0x2f8b8af0cc000LL),
-      reale(-0x207899LL,0xab180153b2c00LL),
-      reale(-0x17cbd19LL,0x6d563e036e800LL),
-      reale(0xd98bb6bLL,0x85d44607e4400LL),
-      reale(-0x1c715c1cLL,0x81961af0f9000LL),
-      reale(0xef76e2aLL,0x1896eb4cd1c00LL),
-      reale(0xd8423cdLL,0xac7cda7d93800LL),
-      reale(-0xdfe665dLL,0xeb33b4f123400LL),
-      reale(0x20f4d8dLL,0x4230b4bd66000LL),
-      reale(-0x25e66aeLL,0xc57a7de380c00LL),
-      reale(0x25ec068LL,0x42dd69fc98800LL),
-      reale(-0x8bc9f7LL,0x63e586d292400LL),
-      reale(0x11875ecLL,0xf302f56753000LL),
-      reale(-0x942362LL,0xa7e8f72cffc00LL),reale(0x300c72LL,0x8380fab1bd800LL),
-      reale(-0x4d1219LL,0x75a9a1c171400LL),reale(0x17e82dLL,0x6fd98617e9df0LL),
-      reale(0x6af68d05eLL,0x1fa68a0342ac7LL),
+      -reale(136365,0x73a1fcfe6ac00LL),-reale(450638,0xd074750f34000LL),
+      -reale(2128024,0x54e7feac4d400LL),-reale(24952088,0x92a9c1fc91800LL),
+      reale(228113259,0x85d44607e4400LL),-reale(477191195,0x7e69e50f07000LL),
+      reale(251096618,0x1896eb4cd1c00LL),reale(226763725,0xac7cda7d93800LL),
+      -reale(234776156,0x14cc4b0edcc00LL),reale(34557325,0x4230b4bd66000LL),
+      -reale(39741101,0x3a85821c7f400LL),reale(39764072,0x42dd69fc98800LL),
+      -reale(9161206,0x9c1a792d6dc00LL),reale(18380268,0xf302f56753000LL),
+      -reale(9708385,0x581708d300400LL),reale(3148914,0x8380fab1bd800LL),
+      -reale(5050904,0x8a565e3e8ec00LL),reale(1566765,0x6fd98617e9df0LL),
+      reale(28712685662LL,0x1fa68a0342ac7LL),
       // C4[3], coeff of eps^11, polynomial in n of order 18
-      reale(-18811LL,0xb688093225a00LL),reale(-44618LL,0xaf855dda9900LL),
-      reale(-121681LL,0xd9372fc875000LL),reale(-408671LL,0x5233927078700LL),
-      reale(-0x1e040dLL,0x28ce2df824600LL),
-      reale(-0x168553bLL,0xa3e5e05241500LL),
-      reale(0xd460a5cLL,0x695506ba87c00LL),
-      reale(-0x1d1f6a90LL,0x1d549843b8300LL),
-      reale(0x117beb33LL,0x10f016a3f3200LL),
-      reale(0xc7942baLL,0x4db1c2b811100LL),
-      reale(-0xfa98bd1LL,0x64b609f6ba800LL),
-      reale(0x2a942daLL,0x3acb33bfff00LL),
-      reale(-0x1e808f3LL,0xdd80ec7631e00LL),
-      reale(0x2b833f4LL,0x9e16c6ccb8d00LL),reale(-0x8d8b02LL,0x704e959ad400LL),
-      reale(0xd8c1bcLL,0x289c377eefb00LL),reale(-0xaf5345LL,0xf36b71bf80a00LL),
-      reale(414830LL,0x163387d5d8900LL),reale(117690LL,0xc756ec17c4aa8LL),
-      reale(0x6af68d05eLL,0x1fa68a0342ac7LL),
+      -reale(18810,0x4977f6cdda600LL),-reale(44617,0xf507aa2256700LL),
+      -reale(121680,0x26c8d0378b000LL),-reale(408670,0xadcc6d8f87900LL),
+      -reale(1967116,0xd731d207dba00LL),-reale(23614778,0x5c1a1fadbeb00LL),
+      reale(222693980,0x695506ba87c00LL),-reale(488598159,0xe2ab67bc47d00LL),
+      reale(293333811,0x10f016a3f3200LL),reale(209273530,0x4db1c2b811100LL),
+      -reale(262769616,0x9b49f60945800LL),reale(44647130,0x3acb33bfff00LL),
+      -reale(31983858,0x227f1389ce200LL),reale(45626356,0x9e16c6ccb8d00LL),
+      -reale(9276161,0xf8fb16a652c00LL),reale(14205372,0x289c377eefb00LL),
+      -reale(11490116,0xc948e407f600LL),reale(414830,0x163387d5d8900LL),
+      reale(117690,0xc756ec17c4aa8LL),reale(28712685662LL,0x1fa68a0342ac7LL),
       // C4[3], coeff of eps^10, polynomial in n of order 19
-      reale(-3668LL,0x745b704814000LL),reale(-7356LL,0x21a269e124000LL),
-      reale(-15964LL,0xec72d7fbcc000LL),reale(-38394LL,0xff9a4ef3a0000LL),
-      reale(-106359LL,0xe335b9f234000LL),reale(-363724LL,0x88012a511c000LL),
-      reale(-0x1b4accLL,0x4b9f771bec000LL),
-      reale(-0x1506447LL,0x82acf9b038000LL),
-      reale(0xcd4b711LL,0x7c4e47994000LL),
-      reale(-0x1db11135LL,0x3f8814c794000LL),
-      reale(0x146f8fbeLL,0x4b25e0bbcc000LL),
-      reale(0xab9ff11LL,0x7ca6ea4dd0000LL),
-      reale(-0x117bd98aLL,0x4b1bc06334000LL),
-      reale(0x3c3652aLL,0xbcee02f98c000LL),
-      reale(-0x13f376fLL,0x23146f606c000LL),
-      reale(0x2f300a8LL,0x7088e98168000LL),
-      reale(-0xc2d459LL,0xe11e273414000LL),reale(0x6a06d0LL,0xd8f6969c04000LL),
-      reale(-0xa26926LL,0xb993988ecc000LL),reale(0x269a8aLL,0x161dcdf222440LL),
-      reale(0x6af68d05eLL,0x1fa68a0342ac7LL),
+      -reale(3667,0x8ba48fb7ec000LL),-reale(7355,0xde5d961edc000LL),
+      -reale(15963,0x138d280434000LL),-reale(38393,53315683LL<<17),
+      -reale(106358,0x1cca460dcc000LL),-reale(363723,0x77fed5aee4000LL),
+      -reale(1788619,0xb46088e414000LL),-reale(22045766,0x7d53064fc8000LL),
+      reale(215267089,0x7c4e47994000LL),-reale(498143540,0xc077eb386c000LL),
+      reale(342855614,0x4b25e0bbcc000LL),reale(179961617,0x7ca6ea4dd0000LL),
+      -reale(293329289,0xb4e43f9ccc000LL),reale(63137066,0xbcee02f98c000LL),
+      -reale(20920174,0xdceb909f94000LL),reale(49479848,0x7088e98168000LL),
+      -reale(12768344,0x1ee1d8cbec000LL),reale(6948560,0xd8f6969c04000LL),
+      -reale(10643749,0x466c677134000LL),reale(2529930,0x161dcdf222440LL),
+      reale(28712685662LL,0x1fa68a0342ac7LL),
       // C4[3], coeff of eps^9, polynomial in n of order 20
       -real(0x354d49acec3dd800LL),-real(0x606a7d34c50a0200LL),
-      reale(-2940LL,0x23b8583df6400LL),reale(-5972LL,0x98e0d26252a00LL),
-      reale(-13141LL,0x32060cd802000LL),reale(-32102LL,0x94515a4461600LL),
-      reale(-90512LL,0xbf74565dcdc00LL),reale(-315894LL,0x3681a17ad4200LL),
-      reale(-0x184830LL,0x31cf272e1800LL),
-      reale(-0x1345666LL,0x74bd8d19f2e00LL),
-      reale(0xc3bb22cLL,0x21c1cf60c5400LL),
-      reale(-0x1e0e44bfLL,0x4d4e7e4305a00LL),
-      reale(0x17dc8eadLL,0xa384192d01000LL),
-      reale(0x7ea8886LL,0x4094526254600LL),
-      reale(-0x13412ff9LL,0x2a97f22f1cc00LL),
-      reale(0x5aae31eLL,0xbfbbc74d27200LL),
-      reale(-0x7e571eLL,0x93186fe6a0800LL),
-      reale(0x2c5c2fdLL,0x8e0e73ffc5e00LL),
-      reale(-0x13c5b2fLL,0xc710b4d114400LL),reale(-922542LL,0xd5e26bb78a00LL),
-      reale(-491670LL,0xa42f82e6a24d0LL),
-      reale(0x6af68d05eLL,0x1fa68a0342ac7LL),
+      -reale(2939,0xdc47a7c209c00LL),-reale(5971,0x671f2d9dad600LL),
+      -reale(13140,0xcdf9f327fe000LL),-reale(32101,0x6baea5bb9ea00LL),
+      -reale(90511,0x408ba9a232400LL),-reale(315893,0xc97e5e852be00LL),
+      -reale(1591343,0xfce30d8d1e800LL),-reale(20207205,0x8b4272e60d200LL),
+      reale(205238828,0x21c1cf60c5400LL),-reale(504251582,0xb2b181bcfa600LL),
+      reale(400330413,0xa384192d01000LL),reale(132810886,0x4094526254600LL),
+      -reale(323039224,0xd5680dd0e3400LL),reale(95085342,0xbfbbc74d27200LL),
+      -reale(8279837,0x6ce790195f800LL),reale(46514941,0x8e0e73ffc5e00LL),
+      -reale(20732718,0x38ef4b2eebc00LL),-reale(922541,0xf2a1d94487600LL),
+      -reale(491669,0x5bd07d195db30LL),reale(28712685662LL,0x1fa68a0342ac7LL),
       // C4[3], coeff of eps^8, polynomial in n of order 21
       -real(0xd828cefda55a800LL),-real(0x16c6eac98e7b6000LL),
       -real(0x27e1e798049c9800LL),-real(0x490330552dbbf000LL),
-      reale(-2256LL,0x7715d478bf800LL),reale(-4648LL,0x773993ce08000LL),
-      reale(-10391LL,0x2ec0caa9f0800LL),reale(-25837LL,0x32aa1d24f000LL),
-      reale(-74325LL,0x3f4000f179800LL),reale(-265481LL,0xa31986dc6000LL),
-      reale(-0x14f9b8LL,0x5f4ef3570a800LL),
-      reale(-0x1138c86LL,0x8dc89e4d1d000LL),
-      reale(0xb6f1f87LL,0xc85920c253800LL),
-      reale(-0x1e0ff20dLL,0x916caffd04000LL),
-      reale(0x1bbdcb17LL,0xbaa71ebb04800LL),
-      reale(0x384d292LL,0xf120275a2b000LL),
-      reale(-0x1470545eLL,0xa56cece8cd800LL),
-      reale(0x8b932d3LL,0x9f9c2b8142000LL),
-      reale(-0x190d15LL,0xe17459d35e800LL),
-      reale(0x1ba0870LL,0x51c8dabef9000LL),
-      reale(-0x19e121dLL,0xfc26ca6267800LL),
-      reale(0x40d611LL,0xd55e5a0325120LL),
-      reale(0x6af68d05eLL,0x1fa68a0342ac7LL),
+      -reale(2255,0x88ea2b8740800LL),-reale(4647,0x88c66c31f8000LL),
+      -reale(10390,0xd13f35560f800LL),-reale(25836,0xfcd55e2db1000LL),
+      -reale(74324,0xc0bfff0e86800LL),-reale(265480,0xf5ce67923a000LL),
+      -reale(1374647,0xa0b10ca8f5800LL),-reale(18058373,0x723761b2e3000LL),
+      reale(191831943,0xc85920c253800LL),-reale(504361484,0x6e935002fc000LL),
+      reale(465423127,0xbaa71ebb04800LL),reale(59036306,0xf120275a2b000LL),
+      -reale(342905949,0x5a93131732800LL),reale(146354899,0x9f9c2b8142000LL),
+      -reale(1641748,0x1e8ba62ca1800LL),reale(28969072,0x51c8dabef9000LL),
+      -reale(27136540,0x3d9359d98800LL),reale(4249105,0xd55e5a0325120LL),
+      reale(28712685662LL,0x1fa68a0342ac7LL),
       // C4[3], coeff of eps^7, polynomial in n of order 22
       -real(0x38123cee860f400LL),-real(0x59d375c04e8be00LL),
       -real(0x942bf86bd4c1800LL),-real(0xfcbda8858afb200LL),
       -real(0x1c02af2dc3443c00LL),-real(0x33fc822f8d2b6600LL),
-      -real(0x65e35fc07de4e000LL),reale(-3415LL,0x3814d6814a600LL),
-      reale(-7776LL,0xe3f177bd67c00LL),reale(-19732LL,0x95ce6ed10f200LL),
-      reale(-58090LL,0x6b8e19ff25800LL),reale(-213112LL,0xea59cce39fe00LL),
-      reale(-0x11614cLL,0x8811931d33400LL),
-      reale(-0xed6da9LL,0xcc2995f504a00LL),
-      reale(0xa5fba68LL,0x2f0a20e9d9000LL),
-      reale(-0x1d766c12LL,0x261b89e445600LL),
-      reale(0x1fe4cb30LL,0xe9f8f195ec00LL),
-      reale(-0x32a45c1LL,0x6c0944416a200LL),
-      reale(-0x13c5edbaLL,0x884009c80c800LL),
-      reale(0xceef01fLL,0x987f3afb7ae00LL),
-      reale(-0x14190caLL,0x7fbc15002a400LL),
-      reale(-0x3fdf64LL,0x5c00896e7fa00LL),
-      reale(-0x47ecefLL,0x2d1e65cb0cf50LL),
-      reale(0x6af68d05eLL,0x1fa68a0342ac7LL),
+      -real(0x65e35fc07de4e000LL),-reale(3414,0xc7eb297eb5a00LL),
+      -reale(7775,0x1c0e884298400LL),-reale(19731,0x6a31912ef0e00LL),
+      -reale(58089,0x9471e600da800LL),-reale(213111,0x15a6331c60200LL),
+      -reale(1139019,0x77ee6ce2ccc00LL),-reale(15560104,0x33d66a0afb600LL),
+      reale(174045800,0x2f0a20e9d9000LL),-reale(494300177,0xd9e4761bbaa00LL),
+      reale(535087920,0xe9f8f195ec00LL),-reale(53102016,0x93f6bbbe95e00LL),
+      -reale(331738553,0x77bff637f3800LL),reale(216985631,0x987f3afb7ae00LL),
+      -reale(21074121,0x8043eaffd5c00LL),-reale(4185955,0xa3ff769180600LL),
+      -reale(4713710,0xd2e19a34f30b0LL),reale(28712685662LL,0x1fa68a0342ac7LL),
       // C4[3], coeff of eps^6, polynomial in n of order 23
       -real(0xe0ca252d14c000LL),-real(0x15a70af15f24000LL),
       -real(0x222b3f817554000LL),-real(0x375f97b48cd8000LL),
       -real(0x5c7b9631f8ac000LL),-real(0x9fe2527c7fcc000LL),
       -real(0x11face3d5ef34000LL),-real(0x21e77d8dabde0000LL),
-      -real(0x439dcbf7fdccc000LL),reale(-2311LL,0xe8ce2f330c000LL),
-      reale(-5374LL,0xca11d3eaac000LL),reale(-13966LL,0xc6123cd18000LL),
-      reale(-42248LL,0x5f55f4e354000LL),reale(-159931LL,0x5dce658a64000LL),
-      reale(-887132LL,0x3edc05794c000LL),reale(-0xc191a8LL,0x9dbc8de510000LL),
-      reale(0x8fac044LL,0x968da6a8b4000LL),
-      reale(-0x1bda5771LL,0xe9ef52573c000LL),
-      reale(0x23bc5202LL,0x5feb9b1dac000LL),
-      reale(-0xccedba9LL,0xeaff8a5b08000LL),
-      reale(-0xe97725aLL,0xac42b4d454000LL),
-      reale(0x103e53d2LL,0x88b0e96a94000LL),
-      reale(-0x53b1f56LL,0xd851e038cc000LL),
-      reale(0x58ed14LL,0xa7a2901c3a740LL),
-      reale(0x6af68d05eLL,0x1fa68a0342ac7LL),
+      -real(0x439dcbf7fdccc000LL),-reale(2310,0x1731d0ccf4000LL),
+      -reale(5373,0x35ee2c1554000LL),-reale(13965,0xf39edc32e8000LL),
+      -reale(42247,0xa0aa0b1cac000LL),-reale(159930,0xa2319a759c000LL),
+      -reale(887131,0xc123fa86b4000LL),-reale(12685735,0x6243721af0000LL),
+      reale(150650948,0x968da6a8b4000LL),-reale(467294064,0x1610ada8c4000LL),
+      reale(599544322,0x5feb9b1dac000LL),-reale(214883240,0x150075a4f8000LL),
+      -reale(244806233,0x53bd4b2bac000LL),reale(272520146,0x88b0e96a94000LL),
+      -reale(87760725,0x27ae1fc734000LL),reale(5827860,0xa7a2901c3a740LL),
+      reale(28712685662LL,0x1fa68a0342ac7LL),
       // C4[3], coeff of eps^5, polynomial in n of order 24
       -real(0x32b69e04189800LL),-real(0x4bd39320660300LL),
       -real(0x73a508e7ef1600LL),-real(0xb44a7ec206b900LL),
@@ -5336,17 +5047,14 @@ namespace GeographicLib {
       -real(0x321a3f994641200LL),-real(0x57fce6d660f8500LL),
       -real(0xa10c564a22b1000LL),-real(0x1356fa3ebba41b00LL),
       -real(0x275fd13435900e00LL),-real(0x5604e2d76283d100LL),
-      reale(-3284LL,0x2070ad378b400LL),reale(-8784LL,0x7223f68ff1900LL),
-      reale(-27452LL,0xebc1e860af600LL),reale(-107904LL,0x1b738290a6300LL),
-      reale(-625733LL,0x1d5410be27800LL),reale(-0x902489LL,0x533e63f8bcd00LL),
-      reale(0x72c06c4LL,0x5507fb0eafa00LL),
-      reale(-0x18988720LL,0x3c017dc891700LL),
-      reale(0x25bc2ea8LL,0xd19d26ed03c00LL),
-      reale(-0x18eb8d7bLL,0x7b2ccab700100LL),
-      reale(-0xd13ce6LL,0xb1cccb08dfe00LL),
-      reale(0x9b9ee42LL,0x55c7c31664b00LL),
-      reale(-0x3b0d6fcLL,0x8ae0c4d412ef8LL),
-      reale(0x6af68d05eLL,0x1fa68a0342ac7LL),
+      -reale(3283,0xdf8f52c874c00LL),-reale(8783,0x8ddc09700e700LL),
+      -reale(27451,0x143e179f50a00LL),-reale(107903,0xe48c7d6f59d00LL),
+      -reale(625732,0xe2abef41d8800LL),-reale(9446536,0xacc19c0743300LL),
+      reale(120325828,0x5507fb0eafa00LL),-reale(412649247,0xc3fe82376e900LL),
+      reale(633089704,0xd19d26ed03c00LL),-reale(418090362,0x84d33548fff00LL),
+      -reale(13712613,0x4e3334f720200LL),reale(163180098,0x55c7c31664b00LL),
+      -reale(61921019,0x751f3b2bed108LL),
+      reale(28712685662LL,0x1fa68a0342ac7LL),
       // C4[3], coeff of eps^4, polynomial in n of order 25
       -real(0x30fab48eb2c00LL),-real(0x4779db0cde000LL),
       -real(0x6a1a5308c1400LL),-real(0xa07c7893bf800LL),
@@ -5356,15 +5064,12 @@ namespace GeographicLib {
       -real(0x17d5829db9a3400LL),-real(0x2ed74923dde5800LL),
       -real(0x61c84aba5ffdc00LL),-real(0xdbaa1b53c88f000LL),
       -real(0x21cc8beefe3fc400LL),-real(0x5da8efb832aa8800LL),
-      reale(-4877LL,0xa27c79e8c9400LL),reale(-20083LL,0x744650f3b6000LL),
-      reale(-123006LL,0x682eafd4bac00LL),reale(-0x1e42b0LL,0x9a1fba0274800LL),
-      reale(0x1a279caLL,0x9c6669ee40400LL),
-      reale(-0x6436c41LL,0x17399d517b000LL),
-      reale(0xb71548aLL,0x46cce583c1c00LL),
-      reale(-0xb1da295LL,0xbadfc78b1800LL),
-      reale(0x58ed14aLL,0x7a2901c3a7400LL),
-      reale(-0x1210284LL,0xdf2faba442070LL),
-      reale(0x23a784574LL,0xb53783566b8edLL),
+      -reale(4876,0x5d83861736c00LL),-reale(20082,0x8bb9af0c4a000LL),
+      -reale(123005,0x97d1502b45400LL),-reale(1983151,0x65e045fd8b800LL),
+      reale(27425226,0x9c6669ee40400LL),-reale(105081920,0xe8c662ae85000LL),
+      reale(191976586,0x46cce583c1c00LL),-reale(186491540,0xf45203874e800LL),
+      reale(93245770,0x7a2901c3a7400LL),-reale(18940547,0x20d0545bbdf90LL),
+      reale(9570895220LL,0xb53783566b8edLL),
       // C4[3], coeff of eps^3, polynomial in n of order 26
       -real(0x10330cb256200LL),-real(0x172cb16211100LL),
       -real(0x21a8187537800LL),-real(0x31b06260f1f00LL),
@@ -5375,252 +5080,202 @@ namespace GeographicLib {
       -real(0x137557a5841e600LL),-real(0x275355b4b1bc500LL),
       -real(0x54b37d85300bc00LL),-real(0xc517d06239a5300LL),
       -real(0x1f8f2f623d981200LL),-real(0x5b85a3034c390100LL),
-      reale(-5021LL,0x5d11943ced800LL),reale(-21966LL,0xb72ce88a8f100LL),
-      reale(-144344LL,0xb3b965d7ac200LL),reale(-0x268b38LL,0x492c763e44300LL),
-      reale(0x249ddb5LL,0x415c2de726c00LL),
-      reale(-0x9b9ee43LL,0xaa383ce99b500LL),
-      reale(0x1373dc84LL,0xab8f862cc9600LL),
-      reale(-0x12102833LL,0xf2faba4420700LL),
-      reale(0x6358dd1LL,0x3479cff894d98LL),
-      reale(0x6af68d05eLL,0x1fa68a0342ac7LL),
+      -reale(5020,0xa2ee6bc312800LL),-reale(21965,0x48d3177570f00LL),
+      -reale(144343,0x4c469a2853e00LL),-reale(2526007,0xb6d389c1bbd00LL),
+      reale(38395317,0x415c2de726c00LL),-reale(163180098,0x55c7c31664b00LL),
+      reale(326360196,0xab8f862cc9600LL),-reale(303048754,0xd0545bbdf900LL),
+      reale(104173009,0x3479cff894d98LL),
+      reale(28712685662LL,0x1fa68a0342ac7LL),
       // C4[4], coeff of eps^29, polynomial in n of order 0
-      real(0x44f600LL),real(0x13ed3512585LL),
+      4519424,real(0x13ed3512585LL),
       // C4[4], coeff of eps^28, polynomial in n of order 1
-      real(0x4b0c377a00LL),real(0x141ef9cec0LL),real(0x12e7203d54087bdLL),
+      real(322327509504LL),real(86419033792LL),real(0x12e7203d54087bdLL),
       // C4[4], coeff of eps^27, polynomial in n of order 2
       real(0xdf868e997000LL),-real(0xc54488fde800LL),real(0x67996a8dfb80LL),
-      reale(6219LL,0x86ed0fee71e5LL),
+      reale(6219,0x86ed0fee71e5LL),
       // C4[4], coeff of eps^26, polynomial in n of order 3
       real(0x1e30d5f17398800LL),-real(0x20335f44c005000LL),
       real(0x8656a9da59d800LL),real(0x246f3281df3200LL),
-      reale(0x1c9038LL,0xea4bbbb5bea41LL),
+      reale(1871928,0xea4bbbb5bea41LL),
       // C4[4], coeff of eps^25, polynomial in n of order 4
       real(0x640278dc982000LL),-real(0x64de2b5e388800LL),
       real(0x266cf1cb211000LL),-real(0x24af02897bd800LL),
-      real(0x125236c4932c80LL),reale(225070LL,0xa1cd0c0f186c5LL),
+      real(0x125236c4932c80LL),reale(225070,0xa1cd0c0f186c5LL),
       // C4[4], coeff of eps^24, polynomial in n of order 5
       real(0x183393315f62f400LL),-real(0x147c8a635ba4f000LL),
       real(0xaadb07a361e2c00LL),-real(0xbd0a07cdca37800LL),
       real(0x2c490db64a86400LL),real(0xc3000bbe3e2580LL),
-      reale(0x7f11bdLL,0x62a2be2e87a79LL),
+      reale(8327613,0x62a2be2e87a79LL),
       // C4[4], coeff of eps^23, polynomial in n of order 6
-      reale(7399LL,0xe4703b1ceb000LL),reale(-4926LL,0x8e7408af10800LL),
-      reale(3656LL,0xc01290e152000LL),reale(-3595LL,0x651f510443800LL),
+      reale(7399,0xe4703b1ceb000LL),-reale(4925,0x718bf750ef800LL),
+      reale(3656,0xc01290e152000LL),-reale(3594,0x9ae0aefbbc800LL),
       real(0x5080258211e79000LL),-real(0x5458466826cf9800LL),
-      real(0x27a09e95cf36b080LL),reale(0x5d628dfLL,0xc3bd6c206251LL),
+      real(0x27a09e95cf36b080LL),reale(97921247,0xc3bd6c206251LL),
       // C4[4], coeff of eps^22, polynomial in n of order 7
-      reale(0x41e7a1LL,0xe5044c1364800LL),reale(-0x2279b3LL,0x3fbc5119cd000LL),
-      reale(0x251936LL,0xcceb783bf5800LL),reale(-0x1c77dbLL,0x77b6fd365e000LL),
-      reale(996566LL,0x94ae3b7946800LL),reale(-0x115309LL,0xd34e3cf7ef000LL),
-      reale(231629LL,0x92b25177d7800LL),reale(64961LL,0x89605803fda00LL),
-      reale(0x898623079LL,0x41f43bb0c949LL),
+      reale(4319137,0xe5044c1364800LL),-reale(2259378,0xc043aee633000LL),
+      reale(2431286,0xcceb783bf5800LL),-reale(1865690,0x884902c9a2000LL),
+      reale(996566,0x94ae3b7946800LL),-reale(1135368,0x2cb1c30811000LL),
+      reale(231629,0x92b25177d7800LL),reale(64961,0x89605803fda00LL),
+      reale(36916310137LL,0x41f43bb0c949LL),
       // C4[4], coeff of eps^21, polynomial in n of order 8
-      reale(0x5e3725LL,0x53f34a829c000LL),reale(-0x2c0886LL,0x220fe5f0ca800LL),
-      reale(0x3e6878LL,0x588848e445000LL),reale(-0x233c7dLL,0x8c97ccdf37800LL),
-      reale(0x1dc39dLL,0xac1b944ace000LL),reale(-0x1b9e87LL,0x5db3f814b4800LL),
-      reale(609590LL,0x74daa18497000LL),reale(-712108LL,0xe9300871a1800LL),
-      reale(310317LL,0x16957f6a36b80LL),reale(0x898623079LL,0x41f43bb0c949LL),
+      reale(6174501,0x53f34a829c000LL),-reale(2885765,0xddf01a0f35800LL),
+      reale(4089976,0x588848e445000LL),-reale(2309244,0x73683320c8800LL),
+      reale(1950621,0xac1b944ace000LL),-reale(1810054,0xa24c07eb4b800LL),
+      reale(609590,0x74daa18497000LL),-reale(712107,0x16cff78e5e800LL),
+      reale(310317,0x16957f6a36b80LL),reale(36916310137LL,0x41f43bb0c949LL),
       // C4[4], coeff of eps^20, polynomial in n of order 9
-      reale(0x767497LL,0xd98a0c3214600LL),reale(-0x45753eLL,0x9a2c75ab3000LL),
-      reale(0x60dce4LL,0x7dcc619ba1a00LL),reale(-0x2a62f7LL,0xeef6e23c7e400LL),
-      reale(0x379edfLL,0x5af876afd6e00LL),reale(-0x24adadLL,0xed96d3cd99800LL),
-      reale(0x150456LL,0xde24866584200LL),reale(-0x183231LL,0xde6d41594c00LL),
-      reale(268682LL,0xb0f056b079600LL),reale(77255LL,0xca5a822ebf740LL),
-      reale(0x898623079LL,0x41f43bb0c949LL),
+      reale(7763095,0xd98a0c3214600LL),-reale(4551997,0xf65d38a54d000LL),
+      reale(6348004,0x7dcc619ba1a00LL),-reale(2777846,0x11091dc381c00LL),
+      reale(3645151,0x5af876afd6e00LL),-reale(2403756,0x12692c3266800LL),
+      reale(1377366,0xde24866584200LL),-reale(1585712,0xf2192bea6b400LL),
+      reale(268682,0xb0f056b079600LL),reale(77255,0xca5a822ebf740LL),
+      reale(36916310137LL,0x41f43bb0c949LL),
       // C4[4], coeff of eps^19, polynomial in n of order 10
-      reale(0x7b2faeLL,0x8bff962f2e000LL),reale(-0x8e6239LL,0x171efbfa1f000LL),
-      reale(0x835afeLL,0x42ad0321d8000LL),reale(-0x3c6b42LL,0xb38873e1d1000LL),
-      reale(0x5fdf52LL,0x55033b3d82000LL),reale(-0x2b37b4LL,0x4424e87f63000LL),
-      reale(0x2d1757LL,0x929c8347ec000LL),reale(-0x2585bcLL,0x2bc2b63c95000LL),
-      reale(787004LL,0x9cc4866d6000LL),reale(-0xfdb00LL,0x94e67c5327000LL),
-      reale(412222LL,0xf695367aa1b00LL),reale(0x898623079LL,0x41f43bb0c949LL),
+      reale(8073134,0x8bff962f2e000LL),-reale(9331256,0xe8e10405e1000LL),
+      reale(8608510,0x42ad0321d8000LL),-reale(3959617,0x4c778c1e2f000LL),
+      reale(6283090,0x55033b3d82000LL),-reale(2832307,0xbbdb17809d000LL),
+      reale(2955095,0x929c8347ec000LL),-reale(2459067,0xd43d49c36b000LL),
+      reale(787004,0x9cc4866d6000LL),-reale(1039103,0x6b1983acd9000LL),
+      reale(412222,0xf695367aa1b00LL),reale(36916310137LL,0x41f43bb0c949LL),
       // C4[4], coeff of eps^18, polynomial in n of order 11
-      reale(0x830429LL,0xffd2991fd000LL),reale(-0x13f4e9bLL,0x228cc28de6000LL),
-      reale(0x8da59dLL,0x193483c94f000LL),reale(-0x7beaf6LL,0x64aaffbeb8000LL),
-      reale(0x8fe67fLL,0x90c0e29221000LL),reale(-0x359704LL,0xff7f3d538a000LL),
-      reale(0x592063LL,0x1886eb4173000LL),reale(-0x2eb64dLL,0x54e5874b5c000LL),
-      reale(0x1f4608LL,0x4067911445000LL),reale(-0x22fb2eLL,0x9e83fab52e000LL),
-      reale(297833LL,0x966e637f97000LL),reale(88539LL,0x9a2e50b8c6400LL),
-      reale(0x898623079LL,0x41f43bb0c949LL),
+      reale(8586281,0xffd2991fd000LL),-reale(20926106,0xdd733d721a000LL),
+      reale(9282973,0x193483c94f000LL),-reale(8121077,0x9b55004148000LL),
+      reale(9430655,0x90c0e29221000LL),-reale(3512067,0x80c2ac76000LL),
+      reale(5840995,0x1886eb4173000LL),-reale(3061324,0xab1a78b4a4000LL),
+      reale(2049544,0x4067911445000LL),-reale(2292525,0x617c054ad2000LL),
+      reale(297833,0x966e637f97000LL),reale(88539,0x9a2e50b8c6400LL),
+      reale(36916310137LL,0x41f43bb0c949LL),
       // C4[4], coeff of eps^17, polynomial in n of order 12
-      reale(0x1eb4769LL,0xd679f8ae1c000LL),
-      reale(-0x26b6a63LL,0xc8e983a10b000LL),
-      reale(0x7adfaaLL,0x2eda271162000LL),
-      reale(-0x13624eeLL,0x32cb1100e9000LL),
-      reale(0xa84f4aLL,0x5827875768000LL),reale(-0x65ab3dLL,0x697a0f03a7000LL),
-      reale(0x98d4acLL,0xfa65faac6e000LL),reale(-0x3387a2LL,0xe109fde185000LL),
-      reale(0x4aa6a0LL,0x94cb79bcb4000LL),reale(-0x3369e0LL,0x6cbc80e2c3000LL),
-      reale(0x104eb1LL,0xdee482d47a000LL),reale(-0x185dd5LL,0x34c1d97fa1000LL),
-      reale(562334LL,0xcf5270735f500LL),reale(0x898623079LL,0x41f43bb0c949LL),
+      reale(32196457,0xd679f8ae1c000LL),-reale(40594018,0x37167c5ef5000LL),
+      reale(8052650,0x2eda271162000LL),-reale(20325613,0xcd34eeff17000LL),
+      reale(11030346,0x5827875768000LL),-reale(6662972,0x9685f0fc59000LL),
+      reale(10015916,0xfa65faac6e000LL),-reale(3377057,0x1ef6021e7b000LL),
+      reale(4892320,0x94cb79bcb4000LL),-reale(3369439,0x93437f1d3d000LL),
+      reale(1068721,0xdee482d47a000LL),-reale(1596884,0xcb3e26805f000LL),
+      reale(562334,0xcf5270735f500LL),reale(36916310137LL,0x41f43bb0c949LL),
       // C4[4], coeff of eps^16, polynomial in n of order 13
-      reale(0xe3f269eLL,0x7928c61a8b800LL),
-      reale(-0x274a9f8LL,0xfeb83f4ee2000LL),
-      reale(0x19cf514LL,0xac3757be98800LL),
-      reale(-0x2b10690LL,0x3bed30e087000LL),
-      reale(0x7f7c1dLL,0xf8b6ea7445800LL),
-      reale(-0x11e1a4cLL,0xb18c883fec000LL),
-      reale(0xcad2bcLL,0xfed958edd2800LL),reale(-0x4ed02eLL,0xd955cefa51000LL),
-      reale(0x98f828LL,0x43fec217f800LL),reale(-0x38b25eLL,0xf12a5bbcf6000LL),
-      reale(0x33f5e8LL,0xc16fe1018c800LL),reale(-0x347f8aLL,0x934f1b0d1b000LL),
-      reale(291108LL,0x30be23439800LL),reale(90314LL,0xe93f4121c6900LL),
-      reale(0x898623079LL,0x41f43bb0c949LL),
+      reale(239019678,0x7928c61a8b800LL),-reale(41200119,0x147c0b11e000LL),
+      reale(27063572,0xac3757be98800LL),-reale(45155983,0xc412cf1f79000LL),
+      reale(8354845,0xf8b6ea7445800LL),-reale(18750027,0x4e7377c014000LL),
+      reale(13292220,0xfed958edd2800LL),-reale(5165101,0x26aa3105af000LL),
+      reale(10025000,0x43fec217f800LL),-reale(3715677,0xed5a4430a000LL),
+      reale(3405288,0xc16fe1018c800LL),-reale(3440521,0x6cb0e4f2e5000LL),
+      reale(291108,0x30be23439800LL),reale(90314,0xe93f4121c6900LL),
+      reale(36916310137LL,0x41f43bb0c949LL),
       // C4[4], coeff of eps^15, polynomial in n of order 14
-      reale(-0x11f62759LL,0xe085960ca6000LL),
-      reale(-0x8349edeLL,0x7e88936265000LL),
-      reale(0xf59250aLL,0xa27a71193c000LL),
-      reale(-0x324d5e9LL,0xf571a60bb3000LL),
-      reale(0x1393a0dLL,0x3707e00852000LL),
-      reale(-0x2f19e78LL,0xe986595aa1000LL),
-      reale(0x9976c9LL,0xa546ce8428000LL),reale(-0xf38a3aLL,0x865870956f000LL),
-      reale(0xf1873bLL,0x3b7a7e96fe000LL),reale(-0x3dab08LL,0xac7a9f725d000LL),
-      reale(0x89909cLL,0x8a056dcb14000LL),reale(-0x45261cLL,0x4e702837ab000LL),
-      reale(0x188b87LL,0x5c81da4aaa000LL),reale(-0x27fab0LL,0x463fc5db99000LL),
-      reale(790676LL,0xf12036cb88d00LL),reale(0x898623079LL,0x41f43bb0c949LL),
+      -reale(301344600,0x1f7a69f35a000LL),-reale(137666269,0x81776c9d9b000LL),
+      reale(257500426,0xa27a71193c000LL),-reale(52745704,0xa8e59f44d000LL),
+      reale(20527629,0x3707e00852000LL),-reale(49389175,0x1679a6a55f000LL),
+      reale(10057417,0xa546ce8428000LL),-reale(15960633,0x79a78f6a91000LL),
+      reale(15828795,0x3b7a7e96fe000LL),-reale(4041479,0x5385608da3000LL),
+      reale(9015452,0x8a056dcb14000LL),-reale(4531739,0xb18fd7c855000LL),
+      reale(1608583,0x5c81da4aaa000LL),-reale(2620079,0xb9c03a2467000LL),
+      reale(790676,0xf12036cb88d00LL),reale(36916310137LL,0x41f43bb0c949LL),
       // C4[4], coeff of eps^14, polynomial in n of order 15
-      reale(-0x91428afLL,0x61168ef4e1000LL),
-      reale(0x179c7facLL,0xf6300698d2000LL),
-      reale(-0x13c91260LL,0xd5d9103743000LL),
-      reale(-0x6ac7e50LL,0xbf6334abb4000LL),
-      reale(0x1074fe92LL,0x8592b62d25000LL),
-      reale(-0x4231b66LL,0xfd1b9a6496000LL),reale(0xc368dcLL,0xaa4a38387000LL),
-      reale(-0x31f4b46LL,0x55c5529a78000LL),
-      reale(0xd375d5LL,0x7d9fda6f69000LL),reale(-0xb5f816LL,0xe80970145a000LL),
-      reale(0x112944cLL,0x2633a57dcb000LL),
-      reale(-0x3bea5eLL,0x63ccb2593c000LL),reale(0x64df29LL,0xa84ec063ad000LL),
-      reale(-0x518269LL,0x301f3a801e000LL),reale(171304LL,0xc92dc0ce0f000LL),
-      reale(53498LL,0x8a12fdd94c400LL),reale(0x898623079LL,0x41f43bb0c949LL),
+      -reale(152316078,0x9ee9710b1f000LL),reale(396132268,0xf6300698d2000LL),
+      -reale(331944543,0x2a26efc8bd000LL),-reale(111967823,0x409ccb544c000LL),
+      reale(276102802,0x8592b62d25000LL),-reale(69409637,0x2e4659b6a000LL),
+      reale(12806364,0xaa4a38387000LL),-reale(52382533,0xaa3aad6588000LL),
+      reale(13858261,0x7d9fda6f69000LL),-reale(11925525,0x17f68feba6000LL),
+      reale(17994828,0x2633a57dcb000LL),-reale(3926621,0x9c334da6c4000LL),
+      reale(6610729,0xa84ec063ad000LL),-reale(5341800,0xcfe0c57fe2000LL),
+      reale(171304,0xc92dc0ce0f000LL),reale(53498,0x8a12fdd94c400LL),
+      reale(36916310137LL,0x41f43bb0c949LL),
       // C4[4], coeff of eps^13, polynomial in n of order 16
-      reale(945329LL,0x3e694a5630000LL),reale(0xc711f4LL,0xd11553dc81000LL),
-      reale(-0x8a57da0LL,0x93a442fb0a000LL),
-      reale(0x178fa170LL,0x9758cc3483000LL),
-      reale(-0x15c14d37LL,0xb25ba3b9a4000LL),
-      reale(-0x4a0fec8LL,0x809fe5a025000LL),
-      reale(0x117acf50LL,0xdb46a6c9be000LL),
-      reale(-0x58a681cLL,0x9728fd0b27000LL),
-      reale(0x4874cbLL,0xd717292318000LL),
-      reale(-0x3233dd5LL,0x218de81149000LL),
-      reale(0x1374bafLL,0xa831b35d72000LL),
-      reale(-0x6d54d8LL,0x1d2510de4b000LL),
-      reale(0x11abf83LL,0x70f1fa908c000LL),
-      reale(-0x53290fLL,0x66a09e0ded000LL),reale(0x2d8d44LL,0xf423c13426000LL),
-      reale(-0x47558cLL,0xb3664e8bef000LL),reale(0x1185f5LL,0xaa811667d8300LL),
-      reale(0x898623079LL,0x41f43bb0c949LL),
+      reale(945329,0x3e694a5630000LL),reale(13046260,0xd11553dc81000LL),
+      -reale(145063327,0x6c5bbd04f6000LL),reale(395288944,0x9758cc3483000LL),
+      -reale(364989750,0x4da45c465c000LL),-reale(77659847,0x7f601a5fdb000LL),
+      reale(293261136,0xdb46a6c9be000LL),-reale(92956699,0x68d702f4d9000LL),
+      reale(4748491,0xd717292318000LL),-reale(52641236,0xde7217eeb7000LL),
+      reale(20401071,0xa831b35d72000LL),-reale(7165143,0xe2daef21b5000LL),
+      reale(18530179,0x70f1fa908c000LL),-reale(5449998,0x995f61f213000LL),
+      reale(2985284,0xf423c13426000LL),-reale(4674955,0x4c99b17411000LL),
+      reale(1148405,0xaa811667d8300LL),reale(36916310137LL,0x41f43bb0c949LL),
       // C4[4], coeff of eps^12, polynomial in n of order 17
-      reale(39064LL,0xc457745427a00LL),reale(149707LL,0xe179ab818a000LL),
-      reale(834482LL,0xb3de3faf4c600LL),reale(0xb4b9faLL,0x43801d34c0c00LL),
-      reale(-0x822b550LL,0x9f953b0b49200LL),
-      reale(0x17547e84LL,0x8b1b355567800LL),
-      reale(-0x17d76448LL,0xa93ae2dcde00LL),
-      reale(-0x1ed1258LL,0x98f34e326e400LL),
-      reale(0x123f4adcLL,0x47c0d4df8aa00LL),
-      reale(-0x778c6c4LL,0xed3c824ec5000LL),
-      reale(-0x17a2d5LL,0x9e21984e2f600LL),
-      reale(-0x2dc770cLL,0xe1086e035bc00LL),
-      reale(0x1c54b5bLL,0x80264b6e6c200LL),
-      reale(-0x326da5LL,0x26f2532122800LL),reale(0xedf8dcLL,0x1c41b85df0e00LL),
-      reale(-0x7f40ddLL,0x8ce3a49309400LL),reale(-264320LL,0xcdacecc56da00LL),
-      reale(-128184LL,0xe028d0b38fac0LL),reale(0x898623079LL,0x41f43bb0c949LL),
+      reale(39064,0xc457745427a00LL),reale(149707,0xe179ab818a000LL),
+      reale(834482,0xb3de3faf4c600LL),reale(11844090,0x43801d34c0c00LL),
+      -reale(136492367,0x606ac4f4b6e00LL),reale(391413380,0x8b1b355567800LL),
+      -reale(399991879,0xf56c51d232200LL),-reale(32313943,0x670cb1cd91c00LL),
+      reale(306137820,0x47c0d4df8aa00LL),-reale(125355715,0x12c37db13b000LL),
+      -reale(1549012,0x61de67b1d0a00LL),-reale(48002827,0x1ef791fca4400LL),
+      reale(29707099,0x80264b6e6c200LL),-reale(3304868,0xd90dacdedd800LL),
+      reale(15595740,0x1c41b85df0e00LL),-reale(8339676,0x731c5b6cf6c00LL),
+      -reale(264319,0x3253133a92600LL),-reale(128183,0x1fd72f4c70540LL),
+      reale(36916310137LL,0x41f43bb0c949LL),
       // C4[4], coeff of eps^11, polynomial in n of order 18
-      reale(3796LL,0xb8b80a685d000LL),reale(10243LL,0xe5415b1644800LL),
-      reale(32134LL,0x75fe9c2f28000LL),reale(125896LL,0x13cc0b67cb800LL),
-      reale(720062LL,0x2eb5ef2cf3000LL),reale(0xa0de48LL,0x8e7784ebe2800LL),
-      reale(-0x788bbdfLL,0x56bd2fd2de000LL),
-      reale(0x16da2c6dLL,0xa914c081a9800LL),
-      reale(-0x19faa310LL,0x61e71b2209000LL),
-      reale(0x19ac988LL,0xa17bcee040800LL),
-      reale(0x12770767LL,0x432113bb94000LL),
-      reale(-0xa062e05LL,0xa594a26c7800LL),
-      reale(-0x1a7124LL,0x87b72ef09f000LL),
-      reale(-0x225d2aaLL,0x900fa56c5e800LL),
-      reale(0x26013eaLL,0x4a7ce5d24a000LL),
-      reale(-0x35b805LL,0xed2b265025800LL),reale(0x789d2fLL,0x47211641b5000LL),
-      reale(-0x8dcd8fLL,0xee1ad4893c800LL),reale(0x1a20deLL,0xd1c47193d5a80LL),
-      reale(0x898623079LL,0x41f43bb0c949LL),
+      reale(3796,0xb8b80a685d000LL),reale(10243,0xe5415b1644800LL),
+      reale(32134,0x75fe9c2f28000LL),reale(125896,0x13cc0b67cb800LL),
+      reale(720062,0x2eb5ef2cf3000LL),reale(10542664,0x8e7784ebe2800LL),
+      -reale(126401502,0xa942d02d22000LL),reale(383396973,0xa914c081a9800LL),
+      -reale(435856143,0x9e18e4ddf7000LL),reale(26921352,0xa17bcee040800LL),
+      reale(309790567,0x432113bb94000LL),-reale(168177156,0xf5a6b5d938800LL),
+      -reale(1732899,0x7848d10f61000LL),-reale(36033193,0x6ff05a93a1800LL),
+      reale(39850986,0x4a7ce5d24a000LL),-reale(3520516,0x12d4d9afda800LL),
+      reale(7904559,0x47211641b5000LL),-reale(9293198,0x11e52b76c3800LL),
+      reale(1712350,0xd1c47193d5a80LL),reale(36916310137LL,0x41f43bb0c949LL),
       // C4[4], coeff of eps^10, polynomial in n of order 19
       real(0x20b0c3dbe662b800LL),real(0x49a4ee6b654d5000LL),
-      reale(2895LL,0xbb9a481b3e800LL),reale(7963LL,0xd6290c9168000LL),
-      reale(25525LL,0x742091bd91800LL),reale(102493LL,0xec03f49fb000LL),
-      reale(603292LL,0x6fe940faa4800LL),reale(0x8b88e9LL,0x3f081030e000LL),
-      reale(-0x6d45eb4LL,0x6afd099bf7800LL),
-      reale(0x160a34dcLL,0x159b783921000LL),
-      reale(-0x1c0a52ddLL,0xbdac853f0a800LL),
-      reale(0x623a0cfLL,0x33db2118b4000LL),
-      reale(0x11a373b2LL,0xfd504b0d5d800LL),
-      reale(-0xd2a4c31LL,0x297a6f3647000LL),
-      reale(0xb87456LL,0x3b87c77470800LL),reale(-0xf3a065LL,0x8338f465a000LL),
-      reale(0x2a9779eLL,0xbb68d3ddc3800LL),
-      reale(-0xaa398fLL,0xce94a8d56d000LL),
-      reale(-0x155fb6LL,0x6e288e66d6800LL),reale(-909991LL,0xa4b2342326e00LL),
-      reale(0x898623079LL,0x41f43bb0c949LL),
+      reale(2895,0xbb9a481b3e800LL),reale(7963,0xd6290c9168000LL),
+      reale(25525,0x742091bd91800LL),reale(102493,0xec03f49fb000LL),
+      reale(603292,0x6fe940faa4800LL),reale(9144553,0x3f081030e000LL),
+      -reale(114581171,0x9502f66408800LL),reale(369767644,0x159b783921000LL),
+      -reale(470438620,0x42537ac0f5800LL),reale(102998223,0x33db2118b4000LL),
+      reale(295924658,0xfd504b0d5d800LL),-reale(220875824,0xd68590c9b9000LL),
+      reale(12088406,0x3b87c77470800LL),-reale(15966308,0xf7cc70b9a6000LL),
+      reale(44660638,0xbb68d3ddc3800LL),-reale(11155854,0x316b572a93000LL),
+      -reale(1400757,0x91d7719929800LL),-reale(909990,0x5b4dcbdcd9200LL),
+      reale(36916310137LL,0x41f43bb0c949LL),
       // C4[4], coeff of eps^9, polynomial in n of order 20
       real(0x55091490e3fe000LL),real(0xab3101736f26800LL),
       real(0x16d77945c4e3b000LL),real(0x345d2a91137d7800LL),
-      reale(2099LL,0xc55d2c398000LL),reale(5898LL,0x424192198800LL),
-      reale(19366LL,0xa6f5f449f5000LL),reale(79943LL,0x847cdfac49800LL),
-      reale(486014LL,0x6a1dc16732000LL),reale(0x74e06dLL,0x94cc8fca800LL),
-      reale(-0x602ae68LL,0x9aefb9112f000LL),
-      reale(0x14c7530fLL,0x22ddc22bfb800LL),
-      reale(-0x1dca92a2LL,0xb20d8a9dcc000LL),
-      reale(0xbcc9b9bLL,0x77a0b2f8bc800LL),
-      reale(0xefae33eLL,0x2663cfb2e9000LL),
-      reale(-0x107b961bLL,0x1d6d98f5ed800LL),
-      reale(0x312ad04LL,0x6a67a23666000LL),reale(0x554400LL,0x5e92831b6e800LL),
-      reale(0x1f045a2LL,0xed2ae23e23000LL),
-      reale(-0x14223e1LL,0xb9bfecc91f800LL),
-      reale(0x25fe41LL,0xe3c1e337a6d80LL),
-      reale(0x898623079LL,0x41f43bb0c949LL),
+      reale(2099,0xc55d2c398000LL),reale(5898,0x424192198800LL),
+      reale(19366,0xa6f5f449f5000LL),reale(79943,0x847cdfac49800LL),
+      reale(486014,0x6a1dc16732000LL),reale(7659629,0x94cc8fca800LL),
+      -reale(100839015,0x651046eed1000LL),reale(348607247,0x22ddc22bfb800LL),
+      -reale(499815073,0x4df2756234000LL),reale(197958555,0x77a0b2f8bc800LL),
+      reale(251323198,0x2663cfb2e9000LL),-reale(276534810,0xe292670a12800LL),
+      reale(51555588,0x6a67a23666000LL),reale(5587968,0x5e92831b6e800LL),
+      reale(32523682,0xed2ae23e23000LL),-reale(21111776,0x46401336e0800LL),
+      reale(2489921,0xe3c1e337a6d80LL),reale(36916310137LL,0x41f43bb0c949LL),
       // C4[4], coeff of eps^8, polynomial in n of order 21
       real(0xeb8379f6b27c00LL),real(0x1b6c4de1f1d7000LL),
       real(0x355a1dadc956400LL),real(0x6d308de46411800LL),
       real(0xed54313f63d4c00LL),real(0x22ae87428a2ac000LL),
-      real(0x58ce5dd980bc3400LL),reale(4090LL,0xd3c824bc46800LL),
-      reale(13806LL,0x44b4a8a441c00LL),reale(58809LL,0x7ab991df81000LL),
-      reale(370898LL,0xe410033e70400LL),reale(0x5d39b4LL,0x6402b9f6fb800LL),
-      reale(-0x511ced4LL,0xb40bb9356ec00LL),
-      reale(0x12ece898LL,0x1b63894556000LL),
-      reale(-0x1ed2ac20LL,0x585c774a5d400LL),
-      reale(0x127ec06aLL,0xe98bc80130800LL),
-      reale(0x95b946bLL,0xaa3cf3c05bc00LL),
-      reale(-0x12a1ebd9LL,0x22d7dff12b000LL),
-      reale(0x775489bLL,0xf01e02788a400LL),reale(0x3e6faaLL,0xb5091207e5800LL),
-      reale(-866060LL,0x3658630e08c00LL),reale(-0x4b6f8eLL,0xb8de01ac7480LL),
-      reale(0x898623079LL,0x41f43bb0c949LL),
+      real(0x58ce5dd980bc3400LL),reale(4090,0xd3c824bc46800LL),
+      reale(13806,0x44b4a8a441c00LL),reale(58809,0x7ab991df81000LL),
+      reale(370898,0xe410033e70400LL),reale(6109620,0x6402b9f6fb800LL),
+      -reale(85053139,0x4bf446ca91400LL),reale(317515928,0x1b63894556000LL),
+      -reale(517123103,0xa7a388b5a2c00LL),reale(310296682,0xe98bc80130800LL),
+      reale(156996715,0xaa3cf3c05bc00LL),-reale(312601560,0xdd28200ed5000LL),
+      reale(125126811,0xf01e02788a400LL),reale(4091818,0xb5091207e5800LL),
+      -reale(866059,0xc9a79cf1f7400LL),-reale(4943757,0xf4721fe538b80LL),
+      reale(36916310137LL,0x41f43bb0c949LL),
       // C4[4], coeff of eps^7, polynomial in n of order 22
       real(0x2814d49c0c5000LL),real(0x468b0d3a3db800LL),
       real(0x80724d98876000LL),real(0xf31dbc49b20800LL),
       real(0x1e12cb4a6a67000LL),real(0x3eb5a58b5455800LL),
       real(0x8b1eef20fbf8000LL),real(0x14cb29a266eda800LL),
-      real(0x36974c82ca289000LL),reale(2585LL,0xefae20720f800LL),
-      reale(9007LL,0x1d6baf437a000LL),reale(39779LL,0x24ec74fd54800LL),
-      reale(261696LL,0x442f64f42b000LL),reale(0x4532bfLL,0xa5b17f809800LL),
-      reale(-0x402994cLL,0xb2640fa9fc000LL),
-      reale(0x10513946LL,0xd27122c18e800LL),
-      reale(-0x1e7406cbLL,0xffbf2aea4d000LL),
-      reale(0x198dce95LL,0x53ee2b6143800LL),
-      reale(-0x6fd952LL,0xc8416b7a7e000LL),
-      reale(-0x106ef95bLL,0x51e9c9b688800LL),
-      reale(0xc2ebeddLL,0xe684af0fef000LL),
-      reale(-0x321b621LL,0x8b9ccea8bd800LL),
-      reale(0x1f62bbLL,0xfeee14beab380LL),
-      reale(0x898623079LL,0x41f43bb0c949LL),
+      real(0x36974c82ca289000LL),reale(2585,0xefae20720f800LL),
+      reale(9007,0x1d6baf437a000LL),reale(39779,0x24ec74fd54800LL),
+      reale(261696,0x442f64f42b000LL),reale(4534975,0xa5b17f809800LL),
+      -reale(67279179,0x4d9bf05604000LL),reale(273758534,0xd27122c18e800LL),
+      -reale(510920394,0x40d515b3000LL),reale(428723861,0x53ee2b6143800LL),
+      -reale(7330129,0x37be948582000LL),-reale(275708250,0xae16364977800LL),
+      reale(204390109,0xe684af0fef000LL),-reale(52540960,0x7463315742800LL),
+      reale(2056891,0xfeee14beab380LL),reale(36916310137LL,0x41f43bb0c949LL),
       // C4[4], coeff of eps^6, polynomial in n of order 23
       real(0x628e4f4bb7800LL),real(0xa60e374943000LL),real(0x11fae77940e800LL),
       real(0x2022ddc061a000LL),real(0x3b7f2e2d7a5800LL),
       real(0x72aa26ca9f1000LL),real(0xe77392a11fc800LL),
       real(0x1ed1e51d0348000LL),real(0x460248a5fa93800LL),
       real(0xabd9e84dc89f000LL),real(0x1d078c2cd5cea800LL),
-      real(0x58c9fda5cf076000LL),reale(5134LL,0xa77137081800LL),
-      reale(23653LL,0x63d76094d000LL),reale(163469LL,0x772f4630d8800LL),
-      reale(0x2dd8fbLL,0x8d384291a4000LL),
-      reale(-0x2dbc35fLL,0x2ac0ecb56f800LL),
-      reale(0xccfee38LL,0xfe0a5a4ffb000LL),
-      reale(-0x1ba24a18LL,0x4006a589c6800LL),
-      reale(0x1eefd234LL,0x411553aad2000LL),
-      reale(-0xe24ea9eLL,0x2a9a05055d800LL),
-      reale(-0x5064327LL,0xfef05400a9000LL),
-      reale(0x88012eaLL,0x607af3a3b4800LL),
-      reale(-0x2c768a6LL,0xc2eb7f1e2c600LL),
-      reale(0x898623079LL,0x41f43bb0c949LL),
+      real(0x58c9fda5cf076000LL),reale(5134,0xa77137081800LL),
+      reale(23653,0x63d76094d000LL),reale(163469,0x772f4630d8800LL),
+      reale(3004667,0x8d384291a4000LL),-reale(47956830,0xd53f134a90800LL),
+      reale(214953528,0xfe0a5a4ffb000LL),-reale(463620631,0xbff95a7639800LL),
+      reale(519033396,0x411553aad2000LL),-reale(237300381,0xd565fafaa2800LL),
+      -reale(84296486,0x10fabff57000LL),reale(142611178,0x607af3a3b4800LL),
+      -reale(46622885,0x3d1480e1d3a00LL),reale(36916310137LL,0x41f43bb0c949LL),
       // C4[4], coeff of eps^5, polynomial in n of order 24
       real(0xc0b5b2cac000LL),real(0x139ac5d2ed800LL),real(0x20abe97223000LL),
       real(0x37e2f8cba0800LL),real(0x6269b1d1ba000LL),real(0xb3074a8a43800LL),
@@ -5628,16 +5283,12 @@ namespace GeographicLib {
       real(0x55d208375c8000LL),real(0xbb7ea958fd9800LL),
       real(0x1b5e1854857f000LL),real(0x4547c4b8360c800LL),
       real(0xc1cdc899e5d6000LL),real(0x2682d6f5e00af800LL),
-      reale(2326LL,0xf44888e46d000LL),reale(11275LL,0x7d4afe8b62800LL),
-      reale(82638LL,0x859516eee4000LL),reale(0x18d8c7LL,0xc1653179c5800LL),
-      reale(-0x1af9d3aLL,0x3ce064e2db000LL),
-      reale(0x86a9f98LL,0x2bb5164778800LL),
-      reale(-0x150fbacaLL,0x9cddde5df2000LL),
-      reale(0x1e0b24ccLL,0x730ece181b800LL),
-      reale(-0x18d8d4d5LL,0x8384e90dc9000LL),
-      reale(0xb1da294LL,0xf45203874e800LL),
-      reale(-0x2158e7cLL,0x12309f56a1480LL),
-      reale(0x898623079LL,0x41f43bb0c949LL),
+      reale(2326,0xf44888e46d000LL),reale(11275,0x7d4afe8b62800LL),
+      reale(82638,0x859516eee4000LL),reale(1628359,0xc1653179c5800LL),
+      -reale(28286265,0xc31f9b1d25000LL),reale(141205400,0x2bb5164778800LL),
+      -reale(353352393,0x632221a20e000LL),reale(504046796,0x730ece181b800LL),
+      -reale(416863444,0x7c7b16f237000LL),reale(186491540,0xf45203874e800LL),
+      -reale(34967163,0xedcf60a95eb80LL),reale(36916310137LL,0x41f43bb0c949LL),
       // C4[4], coeff of eps^4, polynomial in n of order 25
       real(0xe07098dae00LL),real(0x16338b625000LL),real(0x23dda179f200LL),
       real(0x3b41a69cf400LL),real(0x645a89a6b600LL),real(0xaeabe0e09800LL),
@@ -5646,2217 +5297,1993 @@ namespace GeographicLib {
       real(0x2a433484738400LL),real(0x6608a70542c600LL),
       real(0x10c10ac322d2800LL),real(0x30ddb4b92590a00LL),
       real(0xa2e30513d28cc00LL),real(0x289386109855ce00LL),
-      reale(3347LL,0x17499d2cb7000LL),reale(26358LL,0x5763b5c021200LL),
-      reale(564821LL,0x99c65b39a1400LL),reale(-0xa53014LL,0xa750d62f6d600LL),
-      reale(0x39d0d39LL,0x23d4ea299b800LL),
-      reale(-0xa4c65b0LL,0x59e1316fd1a00LL),
-      reale(0x10ac73dfLL,0x6e7b054af5c00LL),
-      reale(-0xde50b3bLL,0xce997b96dde00LL),
-      reale(0x4840a0cLL,0x8341516ef7e40LL),
-      reale(0x898623079LL,0x41f43bb0c949LL),
+      reale(3347,0x17499d2cb7000LL),reale(26358,0x5763b5c021200LL),
+      reale(564821,0x99c65b39a1400LL),-reale(10825747,0x58af29d092a00LL),
+      reale(60624185,0x23d4ea299b800LL),-reale(172778927,0xa61ece902e600LL),
+      reale(279737311,0x6e7b054af5c00LL),-reale(233114426,0x3166846922200LL),
+      reale(75762188,0x8341516ef7e40LL),reale(36916310137LL,0x41f43bb0c949LL),
       // C4[5], coeff of eps^29, polynomial in n of order 0
-      real(0x2f6e00LL),real(0x4338129a0b3LL),
+      3108352,real(0x4338129a0b3LL),
       // C4[5], coeff of eps^28, polynomial in n of order 1
-      -real(0x97662e0000LL),real(0x4701a0b000LL),real(0x171a7cbcbc0a5e7LL),
+      -real(4961047LL<<17),real(304969986048LL),real(0x171a7cbcbc0a5e7LL),
       // C4[5], coeff of eps^27, polynomial in n of order 2
       -real(0xb7a8cf8589000LL),real(0x25cdf8a9f5800LL),real(0xaa8ee05df480LL),
-      reale(53207LL,0x4825dfa147919LL),
+      reale(53207,0x4825dfa147919LL),
       // C4[5], coeff of eps^26, polynomial in n of order 3
       -real(0x4519d2e6066000LL),real(0x17b1d503134000LL),
       -real(0x1b53dc2d3c2000LL),real(0xc104a529c3b00LL),
-      reale(207992LL,0x1a086a30a3679LL),
+      reale(207992,0x1a086a30a3679LL),
       // C4[5], coeff of eps^25, polynomial in n of order 4
       -real(0xe48436400f9e000LL),real(0x825cbe3b5113800LL),
       -real(0x9657faac8f9f000LL),real(0x1ac735d19d16800LL),
-      real(0x7b639e59c13780LL),reale(0x821f3cLL,0x2b5901ca2b961LL),
+      real(0x7b639e59c13780LL),reale(8527676,0x2b5901ca2b961LL),
       // C4[5], coeff of eps^24, polynomial in n of order 5
       -real(0x13b86e0d5c5dc000LL),real(0x135f9b0385fb0000LL),
       -real(0x10df1064c3304000LL),real(0x58b0ae17a818000LL),
       -real(0x70d05036b8ec000LL),real(0x2e5299a0b610e00LL),
-      reale(0x9b4e92LL,0x2338af8e3405bLL),
+      reale(10178194,0x2338af8e3405bLL),
       // C4[5], coeff of eps^23, polynomial in n of order 6
-      reale(-126384LL,0xa0947ea9b1000LL),reale(192332LL,0x2215a4d90d800LL),
-      reale(-113393LL,0x76c6d70356000LL),reale(71665LL,0x3fb557978e800LL),
-      reale(-81792LL,0x5906afc0bb000LL),reale(12036LL,0x1a6fad5adf800LL),
-      reale(3561LL,0x9aef6f2cefa80LL),reale(0xcedfa8a8LL,0xea81d86b4b937LL),
+      -reale(126383,0x5f6b81564f000LL),reale(192332,0x2215a4d90d800LL),
+      -reale(113392,0x893928fcaa000LL),reale(71665,0x3fb557978e800LL),
+      -reale(81791,0xa6f9503f45000LL),reale(12036,0x1a6fad5adf800LL),
+      reale(3561,0x9aef6f2cefa80LL),reale(3470764200LL,0xea81d86b4b937LL),
       // C4[5], coeff of eps^22, polynomial in n of order 7
-      reale(-191648LL,0xe77088a526000LL),reale(308186LL,0x45ee8f2434000LL),
-      reale(-124929LL,0x2de5b6ceb2000LL),reale(153616LL,0xaed0e35eb8000LL),
-      reale(-118467LL,0x3b495d565e000LL),reale(38029LL,0x77ad4b77bc000LL),
-      reale(-53613LL,0xbe09f47cea000LL),reale(20169LL,0xecfa5f7fa8900LL),
-      reale(0xcedfa8a8LL,0xea81d86b4b937LL),
+      -reale(191647,0x188f775ada000LL),reale(308186,0x45ee8f2434000LL),
+      -reale(124928,0xd21a49314e000LL),reale(153616,0xaed0e35eb8000LL),
+      -reale(118466,0xc4b6a2a9a2000LL),reale(38029,0x77ad4b77bc000LL),
+      -reale(53612,0x41f60b8316000LL),reale(20169,0xecfa5f7fa8900LL),
+      reale(3470764200LL,0xea81d86b4b937LL),
       // C4[5], coeff of eps^21, polynomial in n of order 8
-      reale(-0x4ee2b4LL,0x37e2479104000LL),reale(0x5182f3LL,0xe957aa505800LL),
-      reale(-0x1f44cdLL,0xd168ac9993000LL),reale(0x38fc96LL,0xdcd2e44998800LL),
-      reale(-0x1ae334LL,0x14143dae02000LL),reale(0x1469f4LL,0xa441c7cbb800LL),
-      reale(-0x1635daLL,0x81e7523fb1000LL),reale(163809LL,0xd9aab3cbce800LL),
-      reale(50215LL,0x8f7a6f7ead780LL),reale(0xa815b9093LL,0xe897fd72d67cbLL),
+      -reale(5169843,0xc81db86efc000LL),reale(5341939,0xe957aa505800LL),
+      -reale(2049228,0x2e9753666d000LL),reale(3734678,0xdcd2e44998800LL),
+      -reale(1762099,0xebebc251fe000LL),reale(1337844,0xa441c7cbb800LL),
+      -reale(1455577,0x7e18adc04f000LL),reale(163809,0xd9aab3cbce800LL),
+      reale(50215,0x8f7a6f7ead780LL),reale(45119934611LL,0xe897fd72d67cbLL),
       // C4[5], coeff of eps^20, polynomial in n of order 9
-      reale(-0xaaeacdLL,0x650ed01570000LL),reale(0x5156bcLL,0xd37ba10880000LL),
-      reale(-0x3e519fLL,0x5b8c134590000LL),reale(0x5823d2LL,0xc1238f4360000LL),
-      reale(-0x1c3bcfLL,0x81c9aeb8b0000LL),reale(0x2f2a39LL,0x298f1b5c40000LL),
-      reale(-0x1e3275LL,0xf67ab4a4d0000LL),reale(651396LL,0xde4e2e0920000LL),
-      reale(-0xf66e6LL,0xa1e7873ff0000LL),reale(341219LL,0x67868049b6800LL),
-      reale(0xa815b9093LL,0xe897fd72d67cbLL),
+      -reale(11201228,0x9af12fea90000LL),reale(5330620,7096189457LL<<19),
+      -reale(4084126,0xa473ecba70000LL),reale(5776338,0xc1238f4360000LL),
+      -reale(1850318,0x7e36514750000LL),reale(3091001,2788978033LL<<18),
+      -reale(1978996,0x9854b5b30000LL),reale(651396,0xde4e2e0920000LL),
+      -reale(1009381,0x5e1878c010000LL),reale(341219,0x67868049b6800LL),
+      reale(45119934611LL,0xe897fd72d67cbLL),
       // C4[5], coeff of eps^19, polynomial in n of order 10
-      reale(-0x127792cLL,0xc55293d82000LL),reale(0x37ddd5LL,0x231a8ee911000LL),
-      reale(-0x9b350bLL,0x643ebbbae8000LL),reale(0x657928LL,0x1449aa44ff000LL),
-      reale(-0x2d822fLL,0x4d0ecc294e000LL),reale(0x587365LL,0x225c7b8fcd000LL),
-      reale(-0x1e96e9LL,0x4cc2f0ac74000LL),reale(0x1fdbcfLL,0x2718a4e53b000LL),
-      reale(-0x1f259dLL,0x463b57281a000LL),reale(150337LL,0x64e8ec0109000LL),
-      reale(48205LL,0x4eea8f2f13300LL),reale(0xa815b9093LL,0xe897fd72d67cbLL),
+      -reale(19364139,0xf3aad6c27e000LL),reale(3661269,0x231a8ee911000LL),
+      -reale(10171658,0x9bc1444518000LL),reale(6650152,0x1449aa44ff000LL),
+      -reale(2982446,0xb2f133d6b2000LL),reale(5796709,0x225c7b8fcd000LL),
+      -reale(2004712,0xb33d0f538c000LL),reale(2087887,0x2718a4e53b000LL),
+      -reale(2041244,0xb9c4a8d7e6000LL),reale(150337,0x64e8ec0109000LL),
+      reale(48205,0x4eea8f2f13300LL),reale(45119934611LL,0xe897fd72d67cbLL),
       // C4[5], coeff of eps^18, polynomial in n of order 11
-      reale(-0x10fef3bLL,0xbc31d01c6c000LL),
-      reale(0x7bcf45LL,0x34042cf6f8000LL),
-      reale(-0x14146ecLL,0xe27dc86d24000LL),
-      reale(0x440754LL,0xaba1762760000LL),reale(-0x7ff03eLL,0xabf7bede1c000LL),
-      reale(0x7b4775LL,0xcbb99849c8000LL),reale(-0x2125efLL,0xafccca12d4000LL),
-      reale(0x4e4655LL,0x3b8a4c21b0000LL),reale(-0x25dda0LL,0x521386aecc000LL),
-      reale(934125LL,0x1149047298000LL),reale(-0x175f39LL,0x633afb5584000LL),
-      reale(453383LL,0xd34e451346a00LL),reale(0xa815b9093LL,0xe897fd72d67cbLL),
+      -reale(17821498,0x43ce2fe394000LL),reale(8113989,0x34042cf6f8000LL),
+      -reale(21055211,0x1d823792dc000LL),reale(4458324,0xaba1762760000LL),
+      -reale(8384573,0x54084121e4000LL),reale(8079221,0xcbb99849c8000LL),
+      -reale(2172398,0x503335ed2c000LL),reale(5129813,0x3b8a4c21b0000LL),
+      -reale(2481567,0xadec795134000LL),reale(934125,9279934035LL<<15),
+      -reale(1531704,0x9cc504aa7c000LL),reale(453383,0xd34e451346a00LL),
+      reale(45119934611LL,0xe897fd72d67cbLL),
       // C4[5], coeff of eps^17, polynomial in n of order 12
-      reale(0x3e7d45LL,0x789aeb9e64000LL),reale(0x2f3f4fcLL,0x46ab457e8d000LL),
-      reale(-0x172d674LL,0xfe330f229e000LL),
-      reale(0x476747LL,0x21a30e03df000LL),
-      reale(-0x14a9b26LL,0xf13444e798000LL),
-      reale(0x621a4aLL,0x6611bb6911000LL),reale(-0x5b001fLL,0x80ba019392000LL),
-      reale(0x8b7c4cLL,0xab5773fc63000LL),reale(-0x1f2f95LL,0xa3590ccccc000LL),
-      reale(0x3756fbLL,0xd85dd12c15000LL),reale(-0x2c8e14LL,0x45f0207986000LL),
-      reale(85758LL,0x333e03c667000LL),reale(28339LL,0x9119c9ad54d00LL),
-      reale(0xa815b9093LL,0xe897fd72d67cbLL),
+      reale(4095301,0x789aeb9e64000LL),reale(49542396,0x46ab457e8d000LL),
+      -reale(24303219,0x1ccf0dd62000LL),reale(4679495,0x21a30e03df000LL),
+      -reale(21666597,0xecbbb1868000LL),reale(6429258,0x6611bb6911000LL),
+      -reale(5963806,0x7f45fe6c6e000LL),reale(9141324,0xab5773fc63000LL),
+      -reale(2043796,0x5ca6f33334000LL),reale(3626747,0xd85dd12c15000LL),
+      -reale(2919955,0xba0fdf867a000LL),reale(85758,0x333e03c667000LL),
+      reale(28339,0x9119c9ad54d00LL),reale(45119934611LL,0xe897fd72d67cbLL),
       // C4[5], coeff of eps^16, polynomial in n of order 13
-      reale(-0x1049519bLL,0xbc3bc38b38000LL),
-      reale(0x7f7b74aLL,0x952bfc30e0000LL),reale(0x6b8bceLL,0x68e4684408000LL),
-      reale(0x2acdc41LL,0xdb6a70b90000LL),
-      reale(-0x1edede8LL,0xeac4616e58000LL),
-      reale(0x1e9d3bLL,0xa0ac245340000LL),
-      reale(-0x1382e05LL,0xf62e5d8128000LL),
-      reale(0x93015bLL,0x6e1e5ebef0000LL),reale(-0x341c58LL,0x72efe2f378000LL),
-      reale(0x8ab64fLL,0x3d33d105a0000LL),reale(-0x2b7a31LL,0x15b9e03c48000LL),
-      reale(0x17b833LL,0x1bfff1de50000LL),reale(-0x258cfbLL,0x9abfabd298000LL),
-      reale(615586LL,0x6f27f96118400LL),reale(0xa815b9093LL,0xe897fd72d67cbLL),
+      -reale(273240474,0x43c43c74c8000LL),reale(133674826,0x952bfc30e0000LL),
+      reale(7048142,0x68e4684408000LL),reale(44883009,0xdb6a70b90000LL),
+      -reale(32370151,0x153b9e91a8000LL),reale(2006331,0xa0ac245340000LL),
+      -reale(20459012,0x9d1a27ed8000LL),reale(9634139,0x6e1e5ebef0000LL),
+      -reale(3415127,0x8d101d0c88000LL),reale(9090639,8214448173LL<<17),
+      -reale(2849328,0xea461fc3b8000LL),reale(1554483,7516134885LL<<16),
+      -reale(2460922,0x6540542d68000LL),reale(615586,0x6f27f96118400LL),
+      reale(45119934611LL,0xe897fd72d67cbLL),
       // C4[5], coeff of eps^15, polynomial in n of order 14
-      reale(0x16f68781LL,0xc522d651da000LL),
-      reale(-0x37e2828LL,0x7efd7619c3000LL),
-      reale(-0x10331b71LL,0x69423fe444000LL),
-      reale(0x9d098fdLL,0xfc4f4e3665000LL),reale(0x5e2551LL,0xa7ea1cfd2e000LL),
-      reale(0x229920aLL,0xf1d4bf77a7000LL),
-      reale(-0x2769d7dLL,0xa6caafd0d8000LL),
-      reale(0x1576f9LL,0xae66a659c9000LL),reale(-0xffa185LL,0x94f2f05382000LL),
-      reale(0xcec3fdLL,0x7d5a3390b000LL),reale(-0x1aefb0LL,0x7ae491796c000LL),
-      reale(0x6cfbdcLL,0xca525091ad000LL),reale(-0x3fd575LL,0x7e73a676d6000LL),
-      reale(-96165LL,0x5bcf853fef000LL),reale(-44021LL,0xd7e3d2faea500LL),
-      reale(0xa815b9093LL,0xe897fd72d67cbLL),
+      reale(385255297,0xc522d651da000LL),-reale(58599463,0x810289e63d000LL),
+      -reale(271784816,0x96bdc01bbc000LL),reale(164665597,0xfc4f4e3665000LL),
+      reale(6169937,0xa7ea1cfd2e000LL),reale(36278794,0xf1d4bf77a7000LL),
+      -reale(41327996,0x5935502f28000LL),reale(1406713,0xae66a659c9000LL),
+      -reale(16753028,0x6b0d0fac7e000LL),reale(13550589,0x7d5a3390b000LL),
+      -reale(1765295,0x851b6e8694000LL),reale(7142364,0xca525091ad000LL),
+      -reale(4183412,0x818c59892a000LL),-reale(96164,0xa4307ac011000LL),
+      -reale(44020,0x281c2d0515b00LL),reale(45119934611LL,0xe897fd72d67cbLL),
       // C4[5], coeff of eps^14, polynomial in n of order 15
-      reale(0x5159322LL,0xc7e70a9f1c000LL),
-      reale(-0x118b71aaLL,0x5047121068000LL),
-      reale(0x1810e57dLL,0xda2cbc2e94000LL),
-      reale(-0x66778e7LL,0x65170cb790000LL),
-      reale(-0xf96514fLL,0xfb4257b94c000LL),
-      reale(0xbf4cf6bLL,0xcaf344c1b8000LL),
-      reale(-0x16c677LL,0xe3f4c18ec4000LL),
-      reale(0x1620f4bLL,0x98196f9e60000LL),
-      reale(-0x2f24ee0LL,0x7df63fe7c000LL),reale(0x468025LL,0x4eb0e8bd08000LL),
-      reale(-0x9fd65eLL,0xcbc53357f4000LL),reale(0xfd40fdLL,0x1fd2e38d30000LL),
-      reale(-0x23f561LL,0xc44119eaac000LL),reale(0x3194f4LL,0x1edbdd7e58000LL),
-      reale(-0x40b45eLL,0x6cf17c0624000LL),reale(851256LL,0x2b979a0197a00LL),
-      reale(0xa815b9093LL,0xe897fd72d67cbLL),
+      reale(85300002,0xc7e70a9f1c000LL),-reale(294351273,0xafb8edef98000LL),
+      reale(403760509,0xda2cbc2e94000LL),-reale(107444454,0x9ae8f34870000LL),
+      -reale(261509454,0x4bda846b4000LL),reale(200593259,0xcaf344c1b8000LL),
+      -reale(1492598,0x1c0b3e713c000LL),reale(23203659,0x98196f9e60000LL),
+      -reale(49434335,0xf8209c0184000LL),reale(4620325,0x4eb0e8bd08000LL),
+      -reale(10475101,0x343acca80c000LL),reale(16597245,8542632147LL<<16),
+      -reale(2356576,0x3bbee61554000LL),reale(3249396,0x1edbdd7e58000LL),
+      -reale(4240477,0x930e83f9dc000LL),reale(851256,0x2b979a0197a00LL),
+      reale(45119934611LL,0xe897fd72d67cbLL),
       // C4[5], coeff of eps^13, polynomial in n of order 16
-      reale(-334886LL,0x3942380350000LL),reale(-0x54e5e9LL,0x5c5bfa560f000LL),
-      reale(0x499ebdeLL,0x955c2ca786000LL),
-      reale(-0x10b98057LL,0x9f02d32fed000LL),
-      reale(0x19008912LL,0x135ebd637c000LL),
-      reale(-0x9c87f97LL,0x2fc1aca86b000LL),
-      reale(-0xe333bb3LL,0x6a09e3cf2000LL),reale(0xe4ac950LL,0x6d53e5d49000LL),
-      reale(-0x13236e9LL,0xb505beb9a8000LL),
-      reale(0x61a648LL,0x53e56b4c47000LL),
-      reale(-0x32e8783LL,0x4ab2ce9f5e000LL),
-      reale(0xc918dcLL,0x7f23319325000LL),reale(-0x30af60LL,0x8e0ebab3d4000LL),
-      reale(0xf35327LL,0x7112262fa3000LL),reale(-0x5567cdLL,0x276e897cca000LL),
-      reale(-517467LL,0xc78d24bf81000LL),reale(-280399LL,0xc849a31a35b00LL),
-      reale(0xa815b9093LL,0xe897fd72d67cbLL),
+      -reale(334885,0xc6bdc7fcb0000LL),-reale(5563880,0xa3a405a9f1000LL),
+      reale(77196254,0x955c2ca786000LL),-reale(280592470,0x60fd2cd013000LL),
+      reale(419465490,0x135ebd637c000LL),-reale(164134806,0xd03e535795000LL),
+      -reale(238238642,0xf95f61c30e000LL),reale(239782224,0x6d53e5d49000LL),
+      -reale(20068072,0x4afa414658000LL),reale(6399560,0x53e56b4c47000LL),
+      -reale(53380994,0xb54d3160a2000LL),reale(13179100,0x7f23319325000LL),
+      -reale(3190623,0x71f1454c2c000LL),reale(15946535,0x7112262fa3000LL),
+      -reale(5597132,0xd891768336000LL),-reale(517466,0x3872db407f000LL),
+      -reale(280398,0x37b65ce5ca500LL),reale(45119934611LL,0xe897fd72d67cbLL),
       // C4[5], coeff of eps^12, polynomial in n of order 17
-      reale(-9363LL,0x968ca53630000LL),reale(-41699LL,0x39ab2cddLL<<20),
-      reale(-274852LL,0xa91d4207d0000LL),reale(-0x4816caLL,0x57c4a3fe60000LL),
-      reale(0x4133f40LL,0x5baadc4870000LL),reale(-0xfac3dcfLL,0x97946dc0000LL),
-      reale(0x19a74e8cLL,0x66a0aab610000LL),
-      reale(-0xd9c7fd5LL,0x9b5dc96920000LL),
-      reale(-0xbb63ba2LL,0x3909340eb0000LL),
-      reale(0x108fbe05LL,0x73e3e2e80000LL),
-      reale(-0x3409bfaLL,0xc0fc6f1050000LL),
-      reale(-0x9f28cfLL,0xe614f5fbe0000LL),
-      reale(-0x2dff97eLL,0x68964278f0000LL),
-      reale(0x1946da3LL,0xd8be140f40000LL),reale(733724LL,0x9fb250690000LL),
-      reale(0x89382aLL,0x9e09f3a6a0000LL),reale(-0x793ff1LL,0x35e09d7730000LL),
-      reale(0x11f3b6LL,0x79934ee544800LL),
-      reale(0xa815b9093LL,0xe897fd72d67cbLL),
+      -reale(9362,0x69735ac9d0000LL),-reale(41698,3327447843LL<<20),
+      -reale(274851,0x56e2bdf830000LL),-reale(4724425,0xa83b5c01a0000LL),
+      reale(68370240,0x5baadc4870000LL),-reale(262946254,0xff686b9240000LL),
+      reale(430395020,0x66a0aab610000LL),-reale(228360148,0x64a23696e0000LL),
+      -reale(196492193,0xc6f6cbf150000LL),reale(277855749,243039325LL<<19),
+      -reale(54565881,0x3f0390efb0000LL),-reale(10430670,3478671393LL<<17),
+      -reale(48232829,0x9769bd8710000LL),reale(26504611,0xd8be140f40000LL),
+      reale(733724,0x9fb250690000LL),reale(8992810,0x9e09f3a6a0000LL),
+      -reale(7946224,0xca1f6288d0000LL),reale(1176502,0x79934ee544800LL),
+      reale(45119934611LL,0xe897fd72d67cbLL),
       // C4[5], coeff of eps^11, polynomial in n of order 18
       -real(0x274a66713f785000LL),-real(0x78cbe0a9df914800LL),
-      reale(-6987LL,0xa32f129098000LL),reale(-31981LL,0x453597ca04800LL),
-      reale(-217575LL,0x823be2c7b5000LL),reale(-0x3b3fa5LL,0xd12282532d800LL),
-      reale(0x3821f86LL,0xdc7c0f67f2000LL),
-      reale(-0xe59a490LL,0x8723a22086800LL),
-      reale(0x19dacc73LL,0x318800cb6f000LL),
-      reale(-0x11c7eeb4LL,0xf548a3602f800LL),
-      reale(-0x7ba74f6LL,0x9910db8c4c000LL),
-      reale(0x12375406LL,0x94b6a51048800LL),
-      reale(-0x681978eLL,0xa6ccff24a9000LL),
-      reale(-0x112c4d0LL,0xfbc4de1ef1800LL),
-      reale(-0x1c0fa13LL,0x9e52e88ea6000LL),
-      reale(0x246376aLL,0xf0096c8a4a800LL),
-      reale(-0x477522LL,0x11c664e463000LL),
-      reale(-0x118b1eLL,0x40b99a8073800LL),
-      reale(-0x10e331LL,0x73d31536c1e80LL),
-      reale(0xa815b9093LL,0xe897fd72d67cbLL),
+      -reale(6986,0x5cd0ed6f68000LL),-reale(31980,0xbaca6835fb800LL),
+      -reale(217574,0x7dc41d384b000LL),-reale(3882916,0x2edd7dacd2800LL),
+      reale(58859398,0xdc7c0f67f2000LL),-reale(240755855,0x78dc5ddf79800LL),
+      reale(433769587,0x318800cb6f000LL),-reale(298315443,0xab75c9fd0800LL),
+      -reale(129660149,0x66ef2473b4000LL),reale(305615878,0x94b6a51048800LL),
+      -reale(109156237,0x593300db57000LL),-reale(18007247,0x43b21e10e800LL),
+      -reale(29424146,0x61ad17715a000LL),reale(38156138,0xf0096c8a4a800LL),
+      -reale(4683041,0xee399b1b9d000LL),-reale(1149725,0xbf46657f8c800LL),
+      -reale(1106736,0x8c2ceac93e180LL),reale(45119934611LL,0xe897fd72d67cbLL),
       // C4[5], coeff of eps^10, polynomial in n of order 19
       -real(0x3bd4906e474e000LL),-real(0x97941b80ce3c000LL),
       -real(0x1a66716bc5afa000LL),-real(0x532298a0bc3e0000LL),
-      reale(-4940LL,0xf256daf8ba000LL),reale(-23309LL,0x879c08dc7c000LL),
-      reale(-164255LL,0xaa736f110e000LL),reale(-0x2ea1f9LL,0xf31091a018000LL),
-      reale(0x2e81dd2LL,0xafc6204b42000LL),
-      reale(-0xcb87175LL,0xf2364e1434000LL),
-      reale(0x19614c39LL,0x15318e0496000LL),
-      reale(-0x1604d6f4LL,0x8a8293c610000LL),
-      reale(-0x1dbc060LL,0xd38b789a4a000LL),
-      reale(0x123f0094LL,0x213b4942ec000LL),
-      reale(-0xad78c47LL,0xd9c4d7699e000LL),reale(568685LL,0x4686791808000LL),
-      reale(-309549LL,0xcb44aacfd2000LL),reale(0x1f72ab4LL,0x34fcc4d2a4000LL),
-      reale(-0xf7e7fcLL,0x7235d22a26000LL),reale(0x168d3dLL,0xdae92a7065f00LL),
-      reale(0xa815b9093LL,0xe897fd72d67cbLL),
+      -reale(4939,0xda9250746000LL),-reale(23308,0x7863f72384000LL),
+      -reale(164254,0x558c90eef2000LL),-reale(3056120,0xcef6e5fe8000LL),
+      reale(48766418,0xafc6204b42000LL),-reale(213414260,0xdc9b1ebcc000LL),
+      reale(425806905,0x15318e0496000LL),-reale(369415923,0x757d6c39f0000LL),
+      -reale(31178847,0x2c748765b6000LL),reale(306118804,0x213b4942ec000LL),
+      -reale(181898310,0x263b289662000LL),reale(568685,0x4686791808000LL),
+      -reale(309548,0x34bb55302e000LL),reale(32975540,0x34fcc4d2a4000LL),
+      -reale(16246779,0x8dca2dd5da000LL),reale(1477949,0xdae92a7065f00LL),
+      reale(45119934611LL,0xe897fd72d67cbLL),
       // C4[5], coeff of eps^9, polynomial in n of order 20
       -real(0x69d018a3b9e000LL),-real(0xed437c3919a800LL),
       -real(0x237e48279feb000LL),-real(0x5bea2151a0b3800LL),
       -real(0x10666acb6ec18000LL),-real(0x350c7e1643d3c800LL),
-      reale(-3248LL,0x1d418b40bb000LL),reale(-15861LL,0xd9725e65aa800LL),
-      reale(-116264LL,0xa1b86f476e000LL),reale(-0x229587LL,0x7ceb4904e1800LL),
-      reale(0x24855b7LL,0xecf46ee8e1000LL),
-      reale(-0xac2cc75LL,0xaaa0612d48800LL),
-      reale(0x17f097f1LL,0x9c33fda5f4000LL),
-      reale(-0x19c3bce2LL,0x725671bbf800LL),
-      reale(0x61191fcLL,0x5dd5e11f87000LL),
-      reale(0xf0adc55LL,0x80f91f9d26800LL),
-      reale(-0xf09e6ecLL,0x661de5767a000LL),
-      reale(0x3c84250LL,0x191a53ee5d800LL),reale(0xc09838LL,0x95e41abad000LL),
-      reale(0x1f06cdLL,0xc3307b9c44800LL),reale(-0x4821ccLL,0xfdf7c75745180LL),
-      reale(0xa815b9093LL,0xe897fd72d67cbLL),
+      -reale(3247,0xe2be74bf45000LL),-reale(15860,0x268da19a55800LL),
+      -reale(116263,0x5e4790b892000LL),-reale(2266502,0x8314b6fb1e800LL),
+      reale(38294967,0xecf46ee8e1000LL),-reale(180538484,0x555f9ed2b7800LL),
+      reale(401643505,0x9c33fda5f4000LL),-reale(432258273,0xf8da98e440800LL),
+      reale(101814780,0x5dd5e11f87000LL),reale(252370005,0x80f91f9d26800LL),
+      -reale(252307179,0x99e21a8986000LL),reale(63455824,0x191a53ee5d800LL),
+      reale(12621880,0x95e41abad000LL),reale(2033357,0xc3307b9c44800LL),
+      -reale(4727243,0x20838a8bae80LL),reale(45119934611LL,0xe897fd72d67cbLL),
       // C4[5], coeff of eps^8, polynomial in n of order 21
       -real(0xc09a6adbf4000LL),-real(0x18cab6e3030000LL),
       -real(0x359d0ace62c000LL),-real(0x7ab7d9cc438000LL),
-      -real(0x12c67ab580a4000LL),-real(0x31d5f1c0d1c0000LL),
+      -real(0x12c67ab580a4000LL),-real(856171152199LL<<18),
       -real(0x9233f1c13ddc000LL),-real(0x1e779de654b48000LL),
-      -real(0x789f22a00b054000LL),reale(-9797LL,0xe5d83adcb0000LL),
-      reale(-75090LL,0x51f88f9574000LL),reale(-0x178b5aLL,0x9c7032b3a8000LL),
-      reale(0x1a82b31LL,0x1e96e700fc000LL),
-      reale(-0x87b6e90LL,0x2c52914720000LL),
-      reale(0x15338523LL,0xce7f78ffc4000LL),
-      reale(-0x1c018382LL,0xa676efa498000LL),
-      reale(0xf7702b8LL,0x1370b4ff4c000LL),
-      reale(0x6aff3b9LL,0x36d40ed990000LL),
-      reale(-0xf8c984eLL,0x7ffae6d14000LL),
-      reale(0x90685bbLL,0x58f7b5f388000LL),
-      reale(-0x1ed5c63LL,0x42391cb69c000LL),reale(433029LL,0xe4d3ce78fba00LL),
-      reale(0xa815b9093LL,0xe897fd72d67cbLL),
+      -real(0x789f22a00b054000LL),-reale(9796,7021023797LL<<16),
+      -reale(75089,0xae07706a8c000LL),-reale(1543001,0x638fcd4c58000LL),
+      reale(27798321,0x1e96e700fc000LL),-reale(142306959,0xd3ad6eb8e0000LL),
+      reale(355697955,0xce7f78ffc4000LL),-reale(469861249,0x5989105b68000LL),
+      reale(259457720,0x1370b4ff4c000LL),reale(112194489,0x36d40ed990000LL),
+      -reale(260872269,0xf8005192ec000LL),reale(151422395,0x58f7b5f388000LL),
+      -reale(32332898,0xbdc6e34964000LL),reale(433029,0xe4d3ce78fba00LL),
+      reale(45119934611LL,0xe897fd72d67cbLL),
       // C4[5], coeff of eps^7, polynomial in n of order 22
       -real(0x1441fa2f35000LL),-real(0x272c726527800LL),
       -real(0x4ebdd7b856000LL),-real(0xa564301b74800LL),
       -real(0x16d6333bd37000LL),-real(0x3580dec1951800LL),
       -real(0x865ae53c178000LL),-real(0x16ec61d7f65e800LL),
       -real(0x455fa2e228b9000LL),-real(0xef77f4cbfa3b800LL),
-      -real(0x3d9c6e708569a000LL),reale(-5231LL,0x75aee04377800LL),
-      reale(-42197LL,0x3024573145000LL),reale(-920787LL,0xa857f3b1a800LL),
-      reale(0x1102cbfLL,0x2fc56aab44000LL),
-      reale(-0x5f6de95LL,0xa18dfcd50d800LL),
-      reale(0x10e21b46LL,0xc37962f3c3000LL),
-      reale(-0x1b2768abLL,0x1de1d7c9b0800LL),
-      reale(0x17e5fb3aLL,0xf028b16722000LL),
-      reale(-0x7167aefLL,0xab67e90163800LL),
-      reale(-0x6ad24a0LL,0xc9fcb5c1c1000LL),
-      reale(0x742e9cfLL,0x78c43cf486800LL),
-      reale(-0x22a7afaLL,0xbd91e6d784780LL),
-      reale(0xa815b9093LL,0xe897fd72d67cbLL),
+      -real(0x3d9c6e708569a000LL),-reale(5230,0x8a511fbc88800LL),
+      -reale(42196,0xcfdba8cebb000LL),-reale(920786,0xf57a80c4e5800LL),
+      reale(17837247,0x2fc56aab44000LL),-reale(100064916,0x5e72032af2800LL),
+      reale(283253574,0xc37962f3c3000LL),-reale(455567530,0xe21e28364f800LL),
+      reale(400948026,0xf028b16722000LL),-reale(118913774,0x549816fe9c800LL),
+      -reale(112010399,0x36034a3e3f000LL),reale(121825743,0x78c43cf486800LL),
+      -reale(36338425,0x426e19287b880LL),
+      reale(45119934611LL,0xe897fd72d67cbLL),
       // C4[5], coeff of eps^6, polynomial in n of order 23
       -real(0x1b5badebe000LL),-real(0x326332ca4000LL),-real(0x5fd1bd93a000LL),
       -real(0xbcd8e5378000LL),-real(0x1837bef256000LL),
       -real(0x3404424ccc000LL),-real(0x75bf8cd1d2000LL),
-      -real(0x11b50d05060000LL),-real(0x2dc96f11f6e000LL),
+      -real(38025986691LL<<17),-real(0x2dc96f11f6e000LL),
       -real(0x811a6e895f4000LL),-real(0x195036bc82ea000LL),
       -real(0x5af70d135548000LL),-real(0x187d57cdaa406000LL),
-      reale(-2190LL,0xcd2c6639e4000LL),reale(-18743LL,0xc7a34bd57e000LL),
-      reale(-438376LL,0x295778dfd0000LL),reale(0x8cc26dLL,0x89f7eb41e2000LL),
-      reale(-0x36a2869LL,0x2376664bc000LL),
-      reale(0xb05599fLL,0x331692f966000LL),
-      reale(-0x1554ad77LL,0xceab0490e8000LL),
-      reale(0x19bde44bLL,0x7929b7544a000LL),
-      reale(-0x12ff20f2LL,0x1f0e642c94000LL),
-      reale(0x7d8aeffLL,0xbb852faace000LL),
-      reale(-0x163b453LL,0x6175bf8f16300LL),
-      reale(0xa815b9093LL,0xe897fd72d67cbLL),
+      -reale(2189,0x32d399c61c000LL),-reale(18742,0x385cb42a82000LL),
+      -reale(438375,0xd6a8872030000LL),reale(9224813,0x89f7eb41e2000LL),
+      -reale(57288808,0xfdc8999b44000LL),reale(184899999,0x331692f966000LL),
+      -reale(357870966,0x3154fb6f18000LL),reale(431875147,0x7929b7544a000LL),
+      -reale(318710001,0xe0f19bd36c000LL),reale(131641087,0xbb852faace000LL),
+      -reale(23311442,0x9e8a4070e9d00LL),
+      reale(45119934611LL,0xe897fd72d67cbLL),
       // C4[5], coeff of eps^5, polynomial in n of order 24
-      -real(0x15f6510c000LL),-real(0x26e7bc2d800LL),-real(0x46d3779b000LL),
+      -real(92116035LL<<14),-real(0x26e7bc2d800LL),-real(0x46d3779b000LL),
       -real(0x84e1d0c0800LL),-real(0x101cbc30a000LL),-real(0x2073376e3800LL),
       -real(0x442adb8b9000LL),-real(0x963884ff6800LL),-real(0x15dbd71e08000LL),
       -real(0x363ebc6d59800LL),-real(0x9122bbd857000LL),
       -real(0x1a90a4ab06c800LL),-real(0x56f0a68cd06000LL),
       -real(0x147a29992a8f800LL),-real(0x5d1402e6c175000LL),
-      -real(0x228e263277d22800LL),reale(-5079LL,0xa7b39ec4fc000LL),
-      reale(-128864LL,0xff6ddcc67a800LL),reale(0x2d8172LL,0xd360aa0ed000LL),
-      reale(-0x13c02eeLL,0xa44199bee7800LL),
-      reale(0x48aec0dLL,0x519df32cfe000LL),
-      reale(-0xa38931eLL,0x85c9cdac4800LL),
-      reale(0xe62962aLL,0x2d1ed763cf000LL),
-      reale(-0xb1da295LL,0xbadfc78b1800LL),
-      reale(0x37942ceLL,0x8c59a11a48880LL),
-      reale(0xa815b9093LL,0xe897fd72d67cbLL),
+      -real(0x228e263277d22800LL),-reale(5078,0x584c613b04000LL),
+      -reale(128863,0x92233985800LL),reale(2982258,0xd360aa0ed000LL),
+      -reale(20710125,0x5bbe664118800LL),reale(76213261,0x519df32cfe000LL),
+      -reale(171479837,0xf7a363253b800LL),reale(241341994,0x2d1ed763cf000LL),
+      -reale(186491540,0xf45203874e800LL),reale(58278606,0x8c59a11a48880LL),
+      reale(45119934611LL,0xe897fd72d67cbLL),
       // C4[6], coeff of eps^29, polynomial in n of order 0
-      real(139264LL),real(0xed069a73dLL),
+      139264,real(63626127165LL),
       // C4[6], coeff of eps^28, polynomial in n of order 1
-      real(0x3c8190000LL),real(0x11d12e000LL),real(0x219ae3fb400f15LL),
+      real(247833LL<<16),real(4782743552LL),real(0x219ae3fb400f15LL),
       // C4[6], coeff of eps^27, polynomial in n of order 2
-      real(0x642bf3240000LL),-real(0x876551ce0000LL),real(0x350bfa156000LL),
-      reale(4837LL,0x68f14547adebLL),
+      real(420150473LL<<18),-real(0x876551ce0000LL),real(0x350bfa156000LL),
+      reale(4837,0x68f14547adebLL),
       // C4[6], coeff of eps^26, polynomial in n of order 3
       real(0x297e6b0e9e1000LL),-real(0x2e90de909aa000LL),
       real(0x6148b0a84b000LL),real(0x1d77336bca600LL),
-      reale(207992LL,0x1a086a30a3679LL),
+      reale(207992,0x1a086a30a3679LL),
       // C4[6], coeff of eps^25, polynomial in n of order 4
       real(0x10bc6a9e4ee30000LL),-real(0xc179e3d40c9c000LL),
       real(0x3edf483df118000LL),-real(0x5c91fff78634000LL),
-      real(0x216fdab58654400LL),reale(0x99c7d2LL,0xbedd8dc0620e7LL),
+      real(0x216fdab58654400LL),reale(10078162,0xbedd8dc0620e7LL),
       // C4[6], coeff of eps^24, polynomial in n of order 5
-      reale(17715LL,0xdb1cfba26000LL),reale(-7690LL,0x66892806b8000LL),
-      reale(6474LL,0xb1047d5d4a000LL),reale(-6856LL,0x591154455c000LL),
+      reale(17715,0xdb1cfba26000LL),-reale(7689,0x9976d7f948000LL),
+      reale(6474,0xb1047d5d4a000LL),-reale(6855,0xa6eeabbaa4000LL),
       real(0x2ac3e335ea26e000LL),real(0xd6d2e7c22e28400LL),
-      reale(0x1639e175LL,0x96057cce2c163LL),
+      reale(372892021,0x96057cce2c163LL),
       // C4[6], coeff of eps^23, polynomial in n of order 6
-      reale(279883LL,0xa92c150938000LL),reale(-86798LL,0x2ef3960ac4000LL),
-      reale(160072LL,0xfd9d58a4d0000LL),reale(-96732LL,0x3d4c2e98dc000LL),
-      reale(32938LL,0x46d62be868000LL),reale(-52163LL,0x3d81d264f4000LL),
-      reale(17103LL,0x67a9fde667c00LL),reale(0xf47cb00dLL,0x723c5cdbe4f41LL),
+      reale(279883,0xa92c150938000LL),-reale(86797,0xd10c69f53c000LL),
+      reale(160072,0xfd9d58a4d0000LL),-reale(96731,0xc2b3d16724000LL),
+      reale(32938,0x46d62be868000LL),-reale(52162,0xc27e2d9b0c000LL),
+      reale(17103,0x67a9fde667c00LL),reale(4101812237LL,0x723c5cdbe4f41LL),
       // C4[6], coeff of eps^22, polynomial in n of order 7
-      reale(293467LL,0x7db7c77729000LL),reale(-146629LL,0xfb9026d01a000LL),
-      reale(282074LL,0xcdca0f3f8b000LL),reale(-92436LL,0xe8b14d3cbc000LL),
-      reale(105774LL,0xf5edeb18ed000LL),reale(-100727LL,0x877c6fad5e000LL),
-      reale(6619LL,0xde4489894f000LL),reale(2174LL,0xdeb0a21cf2e00LL),
-      reale(0xf47cb00dLL,0x723c5cdbe4f41LL),
+      reale(293467,0x7db7c77729000LL),-reale(146628,0x46fd92fe6000LL),
+      reale(282074,0xcdca0f3f8b000LL),-reale(92435,0x174eb2c344000LL),
+      reale(105774,0xf5edeb18ed000LL),-reale(100726,0x78839052a2000LL),
+      reale(6619,0xde4489894f000LL),reale(2174,0xdeb0a21cf2e00LL),
+      reale(4101812237LL,0x723c5cdbe4f41LL),
       // C4[6], coeff of eps^21, polynomial in n of order 8
-      reale(183603LL,0xf87cf65480000LL),reale(-387952LL,0x76cb6870f0000LL),
-      reale(363243LL,0x9b8677d760000LL),reale(-100928LL,0xf9523861d0000LL),
-      reale(246790LL,0x6a45746a40000LL),reale(-115868LL,0x31a9e68ab0000LL),
-      reale(45470LL,0x976a005d20000LL),reale(-74790LL,0x9413f53b90000LL),
-      reale(21823LL,0x7d1eb3d72b000LL),reale(0xf47cb00dLL,0x723c5cdbe4f41LL),
+      reale(183603,8337878185LL<<19),-reale(387951,0x8934978f10000LL),
+      reale(363243,0x9b8677d760000LL),-reale(100927,0x6adc79e30000LL),
+      reale(246790,7131746729LL<<18),-reale(115867,0xce56197550000LL),
+      reale(45470,0x976a005d20000LL),-reale(74789,0x6bec0ac470000LL),
+      reale(21823,0x7d1eb3d72b000LL),reale(4101812237LL,0x723c5cdbe4f41LL),
       // C4[6], coeff of eps^20, polynomial in n of order 9
-      reale(0x2478c2LL,0x71ea4526d8000LL),reale(-0xaf1110LL,0xa0ac4eb8c0000LL),
-      reale(0x366a3cLL,0xe9fdb6daa8000LL),reale(-0x34ca42LL,0x424052a290000LL),
-      reale(0x514febLL,0xe507b89678000LL),reale(-0x125a98LL,0x4100e69c60000LL),
-      reale(0x21b128LL,0x527339ea48000LL),reale(-0x1b05eeLL,0x48e351f630000LL),
-      reale(48626LL,0x557ebf6618000LL),reale(16670LL,0x4a1716aa8d000LL),
-      reale(0xc6a54f0aeLL,0xcd10b72aa064dLL),
+      reale(2390210,0x71ea4526d8000LL),-reale(11473167,6397281565LL<<18),
+      reale(3566140,0xe9fdb6daa8000LL),-reale(3459649,0xbdbfad5d70000LL),
+      reale(5328875,0xe507b89678000LL),-reale(1202839,0xbeff1963a0000LL),
+      reale(2208040,0x527339ea48000LL),-reale(1770989,0xb71cae09d0000LL),
+      reale(48626,0x557ebf6618000LL),reale(16670,0x4a1716aa8d000LL),
+      reale(53323559086LL,0xcd10b72aa064dLL),
       // C4[6], coeff of eps^19, polynomial in n of order 10
-      reale(0xf6bf9fLL,0xf66942f9a0000LL),reale(-0xf35175LL,0x786c81e010000LL),
-      reale(0x12301eLL,0xa960c2f480000LL),reale(-0x9e694eLL,0x98569ef8f0000LL),
-      reale(0x526a10LL,0xec5f94af60000LL),reale(-0x1d3dbaLL,0x60d48299d0000LL),
-      reale(0x4ed6c3LL,0x6caf07ba40000LL),reale(-0x19a815LL,0x5f6b5a52b0000LL),
-      reale(912008LL,0xad6a83a520000LL),reale(-0x162bc1LL,0xc0ecbfb390000LL),
-      reale(367621LL,0xca46f4fdbb000LL),reale(0xc6a54f0aeLL,0xcd10b72aa064dLL),
+      reale(16170911,0xf66942f9a0000LL),-reale(15946100,0x87937e1ff0000LL),
+      reale(1191966,5683381737LL<<19),-reale(10381645,0x67a9610710000LL),
+      reale(5401104,0xec5f94af60000LL),-reale(1916345,0x9f2b7d6630000LL),
+      reale(5166787,7293640425LL<<18),-reale(1681428,0xa094a5ad50000LL),
+      reale(912008,0xad6a83a520000LL),-reale(1452992,0x3f13404c70000LL),
+      reale(367621,0xca46f4fdbb000LL),reale(53323559086LL,0xcd10b72aa064dLL),
       // C4[6], coeff of eps^18, polynomial in n of order 11
-      reale(0x3179e51LL,0x1c6021da42000LL),
-      reale(-0x33b538LL,0xbad0d1ddbc000LL),reale(0xa7bf8aLL,0x58785d1036000LL),
-      reale(-0x128c9d4LL,0xd79d21c630000LL),
-      reale(0x163a87LL,0xebc764482a000LL),reale(-0x78e350LL,0x7270b07ea4000LL),
-      reale(0x70c4a4LL,0xfe1ce59e1e000LL),reale(-0x10403cLL,0xfd5d5f9318000LL),
-      reale(0x3b140dLL,0x7ef447ee12000LL),reale(-0x248d46LL,0x720bb40f8c000LL),
-      reale(-40352LL,0x4a68585406000LL),reale(-17708LL,0x145d230e3ec00LL),
-      reale(0xc6a54f0aeLL,0xcd10b72aa064dLL),
+      reale(51879505,0x1c6021da42000LL),-reale(3388727,0x452f2e2244000LL),
+      reale(10993546,0x58785d1036000LL),-reale(19450323,0x2862de39d0000LL),
+      reale(1456775,0xebc764482a000LL),-reale(7922511,0x8d8f4f815c000LL),
+      reale(7390372,0xfe1ce59e1e000LL),-reale(1065019,0x2a2a06ce8000LL),
+      reale(3871757,0x7ef447ee12000LL),-reale(2395461,0x8df44bf074000LL),
+      -reale(40351,0xb597a7abfa000LL),-reale(17707,0xeba2dcf1c1400LL),
+      reale(53323559086LL,0xcd10b72aa064dLL),
       // C4[6], coeff of eps^17, polynomial in n of order 12
-      reale(0x12106e1LL,0xd940803e20000LL),
-      reale(-0x2592f9LL,0x39b84a49c8000LL),
-      reale(0x34f8699LL,0x9a9f25d270000LL),
-      reale(-0x9b608eLL,0x20034e6118000LL),reale(0x49ccafLL,0xb44e233ec0000LL),
-      reale(-0x1469307LL,0xffa7235468000LL),
-      reale(0x3a3e7bLL,0xbef1c88b10000LL),reale(-0x440a5cLL,0x66dedf2bb8000LL),
-      reale(0x81bd21LL,0xac3fb5bf60000LL),reale(-0x1746f2LL,0x7f4749ef08000LL),
-      reale(0x192bcbLL,0x4cebe6e3b0000LL),reale(-0x22cd3cLL,0xb0af81a658000LL),
-      reale(482782LL,0x1ffc428c24800LL),reale(0xc6a54f0aeLL,0xcd10b72aa064dLL),
+      reale(18941665,0xd940803e20000LL),-reale(2462456,0xc647b5b638000LL),
+      reale(55543449,0x9a9f25d270000LL),-reale(10182797,0xdffcb19ee8000LL),
+      reale(4836527,0xb44e233ec0000LL),-reale(21402374,0x58dcab98000LL),
+      reale(3817083,0xbef1c88b10000LL),-reale(4459099,0x992120d448000LL),
+      reale(8502561,0xac3fb5bf60000LL),-reale(1525489,0x80b8b610f8000LL),
+      reale(1649611,0x4cebe6e3b0000LL),-reale(2280763,0x4f507e59a8000LL),
+      reale(482782,0x1ffc428c24800LL),reale(53323559086LL,0xcd10b72aa064dLL),
       // C4[6], coeff of eps^16, polynomial in n of order 13
-      reale(0xa1cfd82LL,0xfc4e53058c000LL),
-      reale(-0xf4147a2LL,0x32be9906d0000LL),
-      reale(0x290cdd7LL,0x58bada2414000LL),reale(0xa79c68LL,0x79ecf34458000LL),
-      reale(0x3415dffLL,0xb3c2ab069c000LL),
-      reale(-0x13b713eLL,0xab846519e0000LL),reale(-762959LL,0xf369289524000LL),
-      reale(-0x135075fLL,0x528b3bcf68000LL),
-      reale(0x7e2193LL,0x9541dc37ac000LL),reale(-0x1345d0LL,0x6ba7b8acf0000LL),
-      reale(0x71293dLL,0xebded0d634000LL),reale(-0x2fa11fLL,0xe90ab3fa78000LL),
-      reale(-225539LL,0x7bccdd8bc000LL),reale(-111164LL,0xbe10787a44800LL),
-      reale(0xc6a54f0aeLL,0xcd10b72aa064dLL),
+      reale(169672066,0xfc4e53058c000LL),-reale(255936417,0xcd4166f930000LL),
+      reale(43044311,0x58bada2414000LL),reale(10984552,0x79ecf34458000LL),
+      reale(54615551,0xb3c2ab069c000LL),-reale(20672829,0x547b9ae620000LL),
+      -reale(762958,0xc96d76adc000LL),-reale(20252510,0xad74c43098000LL),
+      reale(8266131,0x9541dc37ac000LL),-reale(1263055,0x9458475310000LL),
+      reale(7416125,0xebded0d634000LL),-reale(3121438,0x16f54c0588000LL),
+      -reale(225538,0xf843322744000LL),-reale(111163,0x41ef8785bb800LL),
+      reale(53323559086LL,0xcd10b72aa064dLL),
       // C4[6], coeff of eps^15, polynomial in n of order 14
-      reale(-0x16212c18LL,0x16c7bb2cd0000LL),
-      reale(0xf69ed07LL,0x3ab9b44ef8000LL),
-      reale(0x798b2aeLL,0xd7dad2fc20000LL),
-      reale(-0x10954e75LL,0xf88cfefd48000LL),
-      reale(0x4a43339LL,0xad9b189b70000LL),reale(0x14cda06LL,0xb09d2ff98000LL),
-      reale(0x2c7bc58LL,0x890e9d12c0000LL),
-      reale(-0x2046117LL,0xda4d755de8000LL),
-      reale(-0x2f3f88LL,0x905ab56a10000LL),
-      reale(-0xe1f069LL,0x5791192038000LL),reale(0xcaa92eLL,0xf66e06a960000LL),
-      reale(-452378LL,0xca32634e88000LL),reale(0x3743b3LL,0x85d91d8b0000LL),
-      reale(-0x39dba6LL,0xc57f8ef0d8000LL),reale(636887LL,0x5f8cc1d1bc800LL),
-      reale(0xc6a54f0aeLL,0xcd10b72aa064dLL),
+      -reale(371272727,0xe93844d330000LL),reale(258600199,0x3ab9b44ef8000LL),
+      reale(127447726,0xd7dad2fc20000LL),-reale(278220404,0x7730102b8000LL),
+      reale(77869881,0xad9b189b70000LL),reale(21813766,0xb09d2ff98000LL),
+      reale(46644312,9197745227LL<<18),-reale(33841430,0x25b28aa218000LL),
+      -reale(3096455,0x6fa54a95f0000LL),-reale(14807144,0xa86ee6dfc8000LL),
+      reale(13281582,0xf66e06a960000LL),-reale(452377,0x35cd9cb178000LL),
+      reale(3621811,0x85d91d8b0000LL),-reale(3791781,0x3a80710f28000LL),
+      reale(636887,0x5f8cc1d1bc800LL),reale(53323559086LL,0xcd10b72aa064dLL),
       // C4[6], coeff of eps^14, polynomial in n of order 15
-      reale(-0x26dd225LL,0x786da908ea000LL),
-      reale(0xae0225fLL,0x62c00442f4000LL),
-      reale(-0x15de519cLL,0x1dca9779fe000LL),
-      reale(0x121d771bLL,0x2a6218fe88000LL),
-      reale(0x435e53fLL,0xa70aa30512000LL),
-      reale(-0x1157138dLL,0xf33e0b21c000LL),
-      reale(0x76abd1aLL,0x116d522626000LL),
-      reale(0x176fc4eLL,0x49539549b0000LL),
-      reale(0x1c72a5aLL,0x6d4c4f193a000LL),
-      reale(-0x2c10a3aLL,0x3297f53144000LL),
-      reale(0x13211dLL,0x8798d15a4e000LL),reale(-0x58f317LL,0xcd63e8d4d8000LL),
-      reale(0xe7993aLL,0x87d0f72562000LL),reale(-0x34150bLL,0x9fbfa8206c000LL),
-      reale(-544538LL,0xecbc2ef676000LL),reale(-371793LL,0xa13fc7f54cc00LL),
-      reale(0xc6a54f0aeLL,0xcd10b72aa064dLL),
+      -reale(40751652,0x879256f716000LL),reale(182461023,0x62c00442f4000LL),
+      -reale(366891419,0xe235688602000LL),reale(303920923,0x2a6218fe88000LL),
+      reale(70640959,0xa70aa30512000LL),-reale(290919308,0xf0cc1f4de4000LL),
+      reale(124435738,0x116d522626000LL),reale(24575054,0x49539549b0000LL),
+      reale(29829722,0x6d4c4f193a000LL),-reale(46205497,0xcd680acebc000LL),
+      reale(1253661,0x8798d15a4e000LL),-reale(5829398,0x329c172b28000LL),
+      reale(15178042,0x87d0f72562000LL),-reale(3413258,0x604057df94000LL),
+      -reale(544537,0x1343d1098a000LL),-reale(371792,0x5ec0380ab3400LL),
+      reale(53323559086LL,0xcd10b72aa064dLL),
       // C4[6], coeff of eps^13, polynomial in n of order 16
-      reale(100946LL,0x14f5785LL<<20),reale(0x1eaeeeLL,0x3c46708bb0000LL),
-      reale(-0x20e75cdLL,0x91f6240c60000LL),
-      reale(0x9bbbb9eLL,0x527fb2e110000LL),
-      reale(-0x1535afb2LL,0xf1ddb263c0000LL),
-      reale(0x14b4a72eLL,0x3243b82e70000LL),
-      reale(-0x27da33LL,0x51c09edb20000LL),
-      reale(-0x110cefc7LL,0xfe6e06c3d0000LL),
-      reale(0xaca2ebcLL,0x45b975c280000LL),reale(0xa8ab13LL,0x8ea9e8f130000LL),
-      reale(0x51b2f5LL,0xc704cb69e0000LL),reale(-0x308183aLL,0xed5150690000LL),
-      reale(0xd69cccLL,0x546dd42140000LL),reale(0x1aaec6LL,0x2e869553f0000LL),
-      reale(0x944d30LL,0x671cfc38a0000LL),reale(-0x667356LL,0x8955702950000LL),
-      reale(816805LL,0x9ce5b98e4f000LL),reale(0xc6a54f0aeLL,0xcd10b72aa064dLL),
+      reale(100946,21976965LL<<20),reale(2010862,0x3c46708bb0000LL),
+      -reale(34502092,0x6e09dbf3a0000LL),reale(163298206,0x527fb2e110000LL),
+      -reale(355839921,948516465LL<<18),reale(347383598,0x3243b82e70000LL),
+      -reale(2611762,0xae3f6124e0000LL),-reale(286060486,421499843LL<<16),
+      reale(181022396,2339564421LL<<19),reale(11053843,0x8ea9e8f130000LL),
+      reale(5354229,0xc704cb69e0000LL),-reale(50862137,0xf12aeaf970000LL),
+      reale(14064844,5665935493LL<<18),reale(1748678,0x2e869553f0000LL),
+      reale(9719088,0x671cfc38a0000LL),-reale(6714197,0x76aa8fd6b0000LL),
+      reale(816805,0x9ce5b98e4f000LL),reale(53323559086LL,0xcd10b72aa064dLL),
       // C4[6], coeff of eps^12, polynomial in n of order 17
-      real(0x75cff722d22b8000LL),reale(9742LL,0x9cc7b8c380000LL),
-      reale(75734LL,0x79163f0448000LL),reale(0x17efacLL,0xd935dd4310000LL),
-      reale(-0x1ae82b9LL,0x7724ca0dd8000LL),
-      reale(0x873bb7eLL,0xe4716652a0000LL),
-      reale(-0x140d6db0LL,0x8555b08f68000LL),
-      reale(0x16ef83e9LL,0xe2aff0230000LL),
-      reale(-0x583b23fLL,0x42bacdd8f8000LL),
-      reale(-0xf10562eLL,0xb981ce61c0000LL),
-      reale(0xe4dc8aaLL,0xfd893c3a88000LL),
-      reale(-0x1b34f0bLL,0xebb6cd8150000LL),
-      reale(-0x1184f43LL,0xa3275b0418000LL),
-      reale(-0x2528095LL,0x87489d70e0000LL),
-      reale(0x1c9fc2bLL,0xb37b1485a8000LL),reale(-654616LL,0xf5695d4070000LL),
-      reale(-667572LL,0x7a3be40f38000LL),reale(-0x120754LL,0xe37e4557a9000LL),
-      reale(0xc6a54f0aeLL,0xcd10b72aa064dLL),
+      real(0x75cff722d22b8000LL),reale(9742,5260669319LL<<19),
+      reale(75734,0x79163f0448000LL),reale(1568684,0xd935dd4310000LL),
+      -reale(28213944,0x88db35f228000LL),reale(141802366,0xe4716652a0000LL),
+      -reale(336424367,0x7aaa4f7098000LL),reale(384795625,0xe2aff0230000LL),
+      -reale(92516926,0xbd45322708000LL),-reale(252728877,4730701433LL<<18),
+      reale(239978666,0xfd893c3a88000LL),-reale(28528394,5445461995LL<<16),
+      -reale(18370370,0x5cd8a4fbe8000LL),-reale(38961300,0x78b7628f20000LL),
+      reale(30014507,0xb37b1485a8000LL),-reale(654615,0xa96a2bf90000LL),
+      -reale(667571,0x85c41bf0c8000LL),-reale(1181523,0x1c81baa857000LL),
+      reale(53323559086LL,0xcd10b72aa064dLL),
       // C4[6], coeff of eps^11, polynomial in n of order 18
       real(0x55d873de6520000LL),real(0x12c7cfeef6810000LL),
-      real(0x4e200e3f1e1LL<<20),reale(6671LL,0xd2467fb9f0000LL),
-      reale(53806LL,0x18686edce0000LL),reale(0x11c054LL,0xd1cfb7f3d0000LL),
-      reale(-0x1502fabLL,0xc33ac28c0000LL),
-      reale(0x70b92b2LL,0x1061a8e5b0000LL),
-      reale(-0x124b5eeeLL,0x8d105894a0000LL),
-      reale(0x186f43c7LL,0xba4df5f90000LL),
-      reale(-0xba838f9LL,0x599212f080000LL),
-      reale(-0xa9ce7e3LL,0xb32b0c3170000LL),
-      reale(0x10dc1f5cLL,0xd715020c60000LL),
-      reale(-0x5f059dbLL,0xeee6c2b50000LL),
-      reale(-0x1403a99LL,0x499ecb840000LL),
-      reale(-0x85d82cLL,0xe5da701d30000LL),
-      reale(0x1de84a4LL,0xdb2c51c420000LL),
-      reale(-0xbe6604LL,0xdfff24d710000LL),reale(873590LL,0xbe0d3e9693000LL),
-      reale(0xc6a54f0aeLL,0xcd10b72aa064dLL),
+      real(0x4e200e3f1e1LL<<20),reale(6671,0xd2467fb9f0000LL),
+      reale(53806,3275978471LL<<17),reale(1163348,0xd1cfb7f3d0000LL),
+      -reale(22032298,0xf3cc53d740000LL),reale(118198962,4397370971LL<<16),
+      -reale(306929389,0x72efa76b60000LL),reale(409945031,0xba4df5f90000LL),
+      -reale(195574008,5584443935LL<<19),-reale(178055138,0x4cd4f3ce90000LL),
+      reale(282861404,0xd715020c60000LL),-reale(99637722,0xf11193d4b0000LL),
+      -reale(20986520,0xfb661347c0000LL),-reale(8771627,7018708525LL<<16),
+      reale(31360164,0xdb2c51c420000LL),-reale(12477955,8590832271LL<<16),
+      reale(873590,0xbe0d3e9693000LL),reale(53323559086LL,0xcd10b72aa064dLL),
       // C4[6], coeff of eps^10, polynomial in n of order 19
       real(0x5808512b12b000LL),real(0xfaa729276e2000LL),
       real(0x3175560e4519000LL),real(0xb21b680b3a90000LL),
-      real(0x2fcbc5fe71407000LL),reale(4229LL,0xf0de326e3e000LL),
-      reale(35532LL,0x38e22907f5000LL),reale(805604LL,0x42db4fa3ec000LL),
-      reale(-0xf66e10LL,0x1b2982ae3000LL),reale(0x58b9699LL,0xf6628ead9a000LL),
-      reale(-0xfdac3daLL,0xc676bce6d1000LL),
-      reale(0x18b1f302LL,0x970145dd48000LL),
-      reale(-0x11f40565LL,0x3ab63845bf000LL),
-      reale(-0x31575d3LL,0xb1ef9c44f6000LL),
-      reale(0x106e189fLL,0x10481031ad000LL),
-      reale(-0xb2eb6deLL,0xf7a0fff6a4000LL),
-      reale(0x180fbb0LL,0x4ada23b49b000LL),reale(0xd45c14LL,0x3da6dc4452000LL),
-      reale(0x3e0d9bLL,0x8660f73889000LL),reale(-0x428dceLL,0x1567cdc2f8200LL),
-      reale(0xc6a54f0aeLL,0xcd10b72aa064dLL),
+      real(0x2fcbc5fe71407000LL),reale(4229,0xf0de326e3e000LL),
+      reale(35532,0x38e22907f5000LL),reale(805604,0x42db4fa3ec000LL),
+      -reale(16150031,0xfe4d67d51d000LL),reale(93034137,0xf6628ead9a000LL),
+      -reale(265995225,0x398943192f000LL),reale(414315266,0x970145dd48000LL),
+      -reale(301204836,0xc549c7ba41000LL),-reale(51738066,0x4e1063bb0a000LL),
+      reale(275650719,0x10481031ad000LL),-reale(187610845,0x85f00095c000LL),
+      reale(25230256,0x4ada23b49b000LL),reale(13917204,0x3da6dc4452000LL),
+      reale(4066715,0x8660f73889000LL),-reale(4361677,0xea98323d07e00LL),
+      reale(53323559086LL,0xcd10b72aa064dLL),
       // C4[6], coeff of eps^9, polynomial in n of order 20
       real(0x65fa8c6bf0000LL),real(0xfe88642ae4000LL),real(0x2aa82304e58000LL),
-      real(0x7ca8bddcccc000LL),real(0x194fd4427cc0000LL),
+      real(0x7ca8bddcccc000LL),real(434853972467LL<<18),
       real(0x5e16320d44b4000LL),real(0x1a2859bf40b28000LL),
-      reale(2409LL,0x1b825da69c000LL),reale(21179LL,0xabe6860d90000LL),
-      reale(506292LL,0x5b6e5f0684000LL),reale(-0xa4f38dLL,0x111e7797f8000LL),
-      reale(0x4035506LL,0xa18a80786c000LL),
-      reale(-0xcb7af66LL,0x186553be60000LL),
-      reale(0x171a9b67LL,0x51e3ba1054000LL),
-      reale(-0x1713e5f0LL,0x2aafbf94c8000LL),
-      reale(0x740ec42LL,0x2400c6e23c000LL),
-      reale(0xa4defabLL,0x9e57682f30000LL),
-      reale(-0xdbd43c5LL,0x48b18f0224000LL),
-      reale(0x6b2cfe6LL,0x4eee70a198000LL),
-      reale(-0x1357fecLL,0xbd6b61840c000LL),reale(-288687LL,0x6772cbaf58400LL),
-      reale(0xc6a54f0aeLL,0xcd10b72aa064dLL),
+      reale(2409,0x1b825da69c000LL),reale(21179,0xabe6860d90000LL),
+      reale(506292,0x5b6e5f0684000LL),-reale(10810252,0xeee1886808000LL),
+      reale(67327238,0xa18a80786c000LL),-reale(213364581,0xe79aac41a0000LL),
+      reale(387619687,0x51e3ba1054000LL),-reale(387180015,0xd550406b38000LL),
+      reale(121695298,0x2400c6e23c000LL),reale(172879787,0x9e57682f30000LL),
+      -reale(230507460,0xb74e70fddc000LL),reale(112381926,0x4eee70a198000LL),
+      -reale(20283371,0x42949e7bf4000LL),-reale(288686,0x988d3450a7c00LL),
+      reale(53323559086LL,0xcd10b72aa064dLL),
       // C4[6], coeff of eps^8, polynomial in n of order 21
-      real(0x72e86a7de000LL),real(0x10573642f8000LL),real(0x273ffc1812000LL),
+      real(0x72e86a7de000LL),real(8772831327LL<<15),real(0x273ffc1812000LL),
       real(0x64635c5cac000LL),real(0x11473cdd246000LL),
       real(0x33fd816c260000LL),real(0xae6e2137a7a000LL),
       real(0x29ff10928814000LL),real(0xc26a115cf4ae000LL),
-      real(0x492994f20c1c8000LL),reale(10833LL,0x80f3c9e4e2000LL),
-      reale(274842LL,0xd406a2037c000LL),reale(-0x6012e6LL,0x357fd12f16000LL),
-      reale(0x28c06b5LL,0xb6f3d1e130000LL),
-      reale(-0x902ffe5LL,0xbe5818774a000LL),
-      reale(0x131b9685LL,0xae49526ee4000LL),
-      reale(-0x18d0ede1LL,0x4737bba17e000LL),
-      reale(0x11c7fea3LL,0xb52957c098000LL),
-      reale(-0x28f7716LL,0x87866451b2000LL),
-      reale(-0x7256b3fLL,0x8fcbd36a4c000LL),
-      reale(0x631cd86LL,0x8691916be6000LL),
-      reale(-0x1bce7e3LL,0xd04a5c2dd1400LL),
-      reale(0xc6a54f0aeLL,0xcd10b72aa064dLL),
+      real(0x492994f20c1c8000LL),reale(10833,0x80f3c9e4e2000LL),
+      reale(274842,0xd406a2037c000LL),-reale(6296293,0xca802ed0ea000LL),
+      reale(42731189,0xb6f3d1e130000LL),-reale(151191524,0x41a7e788b6000LL),
+      reale(320575109,0xae49526ee4000LL),-reale(416345568,0xb8c8445e82000LL),
+      reale(298319523,0xb52957c098000LL),-reale(42956565,0x78799bae4e000LL),
+      -reale(119892798,0x70342c95b4000LL),reale(103927174,0x8691916be6000LL),
+      -reale(29157346,0x2fb5a3d22ec00LL),
+      reale(53323559086LL,0xcd10b72aa064dLL),
       // C4[6], coeff of eps^7, polynomial in n of order 22
-      real(0x239fd418000LL),real(0x4ba47734000LL),real(0xa7b994d0000LL),
+      real(74709635LL<<15),real(0x4ba47734000LL),real(0xa7b994d0000LL),
       real(0x1869c5c6c000LL),real(0x3c23e3d88000LL),real(0x9e1c8b7a4000LL),
-      real(0x1c0ba4ea40000LL),real(0x573ad5a4dc000LL),real(0x12f915ab6f8000LL),
+      real(1882100649LL<<18),real(0x573ad5a4dc000LL),real(0x12f915ab6f8000LL),
       real(0x4c1f4084014000LL),real(0x170ced7cbfb0000LL),
       real(0x921b89aca54c000LL),real(0x599b4a7922068000LL),
-      reale(38914LL,0x1efa73f084000LL),reale(-964916LL,0xae5925f520000LL),
-      reale(0x6dde12LL,0x92a23dbc000LL),reale(-0x1b531f7LL,0xfca92159d8000LL),
-      reale(0x438e649LL,0x39cdeca8f4000LL),
-      reale(-0x6d8cf62LL,0x320c56a90000LL),
-      reale(0x75051e2LL,0xd9bfe74e2c000LL),
-      reale(-0x4f4a46cLL,0x6125254348000LL),
-      reale(0x1ed5c62LL,0xbdc6e34964000LL),
-      reale(-0x53b1f6LL,0xad851e038cc00LL),
-      reale(0x42371a58fLL,0x99b03d0e3576fLL),
+      reale(38914,0x1efa73f084000LL),-reale(964915,0x51a6da0ae0000LL),
+      reale(7200274,0x92a23dbc000LL),-reale(28652022,0x356dea628000LL),
+      reale(70837833,0x39cdeca8f4000LL),-reale(114872161,0xfcdf3a9570000LL),
+      reale(122704354,0xd9bfe74e2c000LL),-reale(83141739,0x9edadabcb8000LL),
+      reale(32332898,0xbdc6e34964000LL),-reale(5485045,0x527ae1fc73400LL),
+      reale(17774519695LL,0x99b03d0e3576fLL),
       // C4[6], coeff of eps^6, polynomial in n of order 23
-      real(0x3be9413000LL),real(0x788a76e000LL),real(0xfb6e649000LL),
+      real(257316433920LL),real(517719121920LL),real(0xfb6e649000LL),
       real(0x221f7064000LL),real(0x4d84a37f000LL),real(0xb958155a000LL),
       real(0x1d5dd0db5000LL),real(0x4faa5a050000LL),real(0xea04686eb000LL),
       real(0x2f40e3db46000LL),real(0xab8623d121000LL),real(0x2d147c4903c000LL),
       real(0xe63ae874e57000LL),real(0x60cd21bcc932000LL),
-      real(0x3f869e23e408d000LL),reale(29814LL,0xcc97221028000LL),
-      reale(-808727LL,0x927c8409c3000LL),reale(0x663f4cLL,0x1daf27af1e000LL),
-      reale(-0x1cc1cd7LL,0x7a6bcd6bf9000LL),
-      reale(0x5229b89LL,0x7da76bf014000LL),
-      reale(-0x9d7aa1dLL,0x247f1bc92f000LL),
-      reale(0xc86d881LL,0xd18cc55d0a000LL),
-      reale(-0x92776d6LL,0xfa8f486365000LL),
-      reale(0x2c768a5LL,0x3d1480e1d3a00LL),
-      reale(0xc6a54f0aeLL,0xcd10b72aa064dLL),
+      real(0x3f869e23e408d000LL),reale(29814,0xcc97221028000LL),
+      -reale(808726,0x6d837bf63d000LL),reale(6700876,0x1daf27af1e000LL),
+      -reale(30153942,0x8594329407000LL),reale(86154121,0x7da76bf014000LL),
+      -reale(165128732,0xdb80e436d1000LL),reale(210163841,0xd18cc55d0a000LL),
+      -reale(153581269,0x570b79c9b000LL),reale(46622885,0x3d1480e1d3a00LL),
+      reale(53323559086LL,0xcd10b72aa064dLL),
       // C4[7], coeff of eps^29, polynomial in n of order 0
-      real(0x30c152000LL),real(0x90e6983c364f3dLL),
+      real(13087612928LL),real(0x90e6983c364f3dLL),
       // C4[7], coeff of eps^28, polynomial in n of order 1
-      -real(323414LL<<20),real(0x1b9da04000LL),real(0xcf8f801ee602cdLL),
+      -real(161707LL<<21),real(7239297LL<<14),real(0xcf8f801ee602cdLL),
       // C4[7], coeff of eps^27, polynomial in n of order 2
-      -real(0xd09e1c29LL<<20),real(0x12ca6fb180000LL),real(0x6038c37fa000LL),
-      reale(72555LL,0x626230f3330c5LL),
+      -real(3500022825LL<<20),real(630513507LL<<19),real(0x6038c37fa000LL),
+      reale(72555,0x626230f3330c5LL),
       // C4[7], coeff of eps^26, polynomial in n of order 3
-      -real(0x2af5689902LL<<20),real(0xf13527954LL<<20),
-      -real(0x183402f656LL<<20),real(0x7c00d0f2b78000LL),
-      reale(0x2f9b09LL,0x867e38d993117LL),
+      -real(92252949633LL<<21),real(16187170389LL<<22),
+      -real(51975912235LL<<21),real(0x7c00d0f2b78000LL),
+      reale(3119881,0x867e38d993117LL),
       // C4[7], coeff of eps^25, polynomial in n of order 4
       -real(0x64d0a86bae7c0000LL),real(0x7c07ce24c65f0000LL),
       -real(0x739ece76489e0000LL),real(0x6e7bce15f550000LL),
-      real(0x24fc420030b8400LL),reale(0x79fd486LL,0x8a371ad88dcafLL),
+      real(0x24fc420030b8400LL),reale(127915142,0x8a371ad88dcafLL),
       // C4[7], coeff of eps^24, polynomial in n of order 5
-      reale(-5991LL,0x42dcd933c0000LL),reale(14992LL,0xef80deedLL<<20),
-      reale(-6874LL,0x7aef520a40000LL),reale(2782LL,0xeff05a1280000LL),
-      reale(-4584LL,0x3766db4cc0000LL),real(0x52aed30dcf988800LL),
-      reale(0x19a53f38LL,0xe82db7640b7c1LL),
+      -reale(5990,0xbd2326cc40000LL),reale(14992,4018200301LL<<20),
+      -reale(6873,8929851351LL<<18),reale(2782,8051012645LL<<19),
+      -reale(4583,0xc89924b340000LL),real(0x52aed30dcf988800LL),
+      reale(430260024,0xe82db7640b7c1LL),
       // C4[7], coeff of eps^23, polynomial in n of order 6
-      reale(-169327LL,0xe0a806c9e0000LL),reale(261065LL,0x25b4e353d0000LL),
-      reale(-59143LL,0xf3af66d40000LL),reale(111182LL,0x112090dcb0000LL),
-      reale(-88870LL,0xfc3ddec8a0000LL),reale(2313LL,0xe34bfe3f90000LL),
-      real(0x32dc48b9e1d23400LL),reale(0x11a19b771LL,0xf9f6e14c7e54bLL),
+      -reale(169326,4206873009LL<<17),reale(261065,0x25b4e353d0000LL),
+      -reale(59142,0xf0c50992c0000LL),reale(111182,4597550539LL<<16),
+      -reale(88869,504433083LL<<17),reale(2313,0xe34bfe3f90000LL),
+      real(0x32dc48b9e1d23400LL),reale(4732860273LL,0xf9f6e14c7e54bLL),
       // C4[7], coeff of eps^22, polynomial in n of order 7
-      reale(-467158LL,0xbe6f51b1LL<<20),reale(258178LL,0x5a0948aaLL<<20),
-      reale(-91475LL,0xdea433a3LL<<20),reale(248285LL,0x28df051cLL<<20),
-      reale(-82822LL,0xf2367e95LL<<20),reale(44668LL,0x7dd558eLL<<20),
-      reale(-71457LL,0x60e16887LL<<20),reale(18220LL,0x9846e079d4000LL),
-      reale(0x11a19b771LL,0xf9f6e14c7e54bLL),
+      -reale(467157,1100000847LL<<20),reale(258178,755278933LL<<21),
+      -reale(91474,559664221LL<<20),reale(248285,171426119LL<<22),
+      -reale(82821,231309675LL<<20),reale(44668,65972935LL<<21),
+      -reale(71456,2669582201LL<<20),reale(18220,0x9846e079d4000LL),
+      reale(4732860273LL,0xf9f6e14c7e54bLL),
       // C4[7], coeff of eps^21, polynomial in n of order 8
-      reale(-0xa5aec8LL,0x777cc83eLL<<20),reale(0x11a17dLL,0xa514064740000LL),
-      reale(-0x4343d4LL,0xdeea4d3680000LL),reale(0x4492b2LL,0xa8330ec1c0000LL),
-      reale(-693748LL,0x1fe425dfLL<<20),reale(0x23a5c6LL,0x8456366440000LL),
-      reale(-0x16e099LL,0x6b88f7a780000LL),reale(-18467LL,0xa097fb1ec0000LL),
-      reale(-7819LL,0x911b78647d000LL),reale(0xe534e50c9LL,0xb18970e26a4cfLL),
+      -reale(10858183,1145150433LL<<21),reale(1155453,0xa514064740000LL),
+      -reale(4408275,1110140307LL<<19),reale(4494002,0xa8330ec1c0000LL),
+      -reale(693747,3759921697LL<<20),reale(2336198,8880970129LL<<18),
+      -reale(1499288,4981657777LL<<19),-reale(18466,6402610053LL<<18),
+      -reale(7818,0x6ee4879b83000LL),reale(61527183561LL,0xb18970e26a4cfLL),
       // C4[7], coeff of eps^20, polynomial in n of order 9
-      reale(-0x78a763LL,0xe12263dLL<<20),reale(0x186fcbLL,0x9fe6dc38LL<<20),
-      reale(-0xab7c69LL,0x33b40ed3LL<<20),reale(0x29e3c4LL,0xd51ea2faLL<<20),
-      reale(-0x237bd0LL,0x79b81299LL<<20),reale(0x4b60a3LL,0xa9ce0b9cLL<<20),
-      reale(-0xf94c7LL,0xdedf92efLL<<20),reale(952760LL,0xc26e557eLL<<20),
-      reale(-0x14d541LL,0xc6765135LL<<20),reale(299618LL,0x2f589c3f22000LL),
-      reale(0xe534e50c9LL,0xb18970e26a4cfLL),
+      -reale(7907170,4058896835LL<<20),reale(1601483,335338375LL<<23),
+      -reale(11238504,3427529005LL<<20),reale(2745284,1787777405LL<<21),
+      -reale(2325455,2252860775LL<<20),reale(4939939,712213223LL<<22),
+      -reale(1021126,555773201LL<<20),reale(952760,1631005375LL<<21),
+      -reale(1365312,965324491LL<<20),reale(299618,0x2f589c3f22000LL),
+      reale(61527183561LL,0xb18970e26a4cfLL),
       // C4[7], coeff of eps^19, polynomial in n of order 10
-      reale(0x58abcbLL,0xeb3253d980000LL),reale(0x1244ba7LL,0x5d4a7ae6c0000LL),
-      reale(-0xc9f225LL,0x9cbf654eLL<<20),reale(-473730LL,0x5331198540000LL),
-      reale(-0x93dd40LL,0xb6af590280000LL),reale(0x4f9f93LL,0x4eb5945bc0000LL),
-      reale(-699194LL,0x3a7fd467LL<<20),reale(0x3d87afLL,0xb01d955a40000LL),
-      reale(-0x1d03d5LL,0x4d30d0eb80000LL),reale(-111198LL,0xf5575470c0000LL),
-      reale(-51623LL,0x225dac5061000LL),reale(0xe534e50c9LL,0xb18970e26a4cfLL),
+      reale(5811147,7891888051LL<<19),reale(19155879,6260648859LL<<18),
+      -reale(13234724,832589145LL<<21),-reale(473729,0xaccee67ac0000LL),
+      -reale(9690431,2460044795LL<<19),reale(5218195,5282091375LL<<18),
+      -reale(699193,3313511321LL<<20),reale(4032431,0xb01d955a40000LL),
+      -reale(1901524,5999844905LL<<19),-reale(111197,715304509LL<<18),
+      -reale(51622,0xdda253af9f000LL),reale(61527183561LL,0xb18970e26a4cfLL),
       // C4[7], coeff of eps^18, polynomial in n of order 11
-      reale(-0x20e15e1LL,0xbf46d1bfLL<<20),reale(0x2ac48aeLL,0x61685b62LL<<20),
-      reale(0x4649e0LL,0x5db54885LL<<20),reale(0xbeaec0LL,0x64563de8LL<<20),
-      reale(-0x116ccf0LL,0xa3fd094bLL<<20),reale(-128701LL,0xa77a706eLL<<20),
-      reale(-0x5dac8aLL,0xd6ec6011LL<<20),reale(0x70afd6LL,0x17f62ef4LL<<20),
-      reale(-590510LL,0x5a1128d7LL<<20),reale(0x1b799aLL,0x5358957aLL<<20),
-      reale(-0x1fecf6LL,0x2b71ef9dLL<<20),reale(381025LL,0x99466ecd7c000LL),
-      reale(0xe534e50c9LL,0xb18970e26a4cfLL),
+      -reale(34477536,1085877825LL<<20),reale(44845230,817114545LL<<21),
+      reale(4606432,1572161669LL<<20),reale(12496576,210421693LL<<23),
+      -reale(18271471,1543698101LL<<20),-reale(128700,742574025LL<<21),
+      -reale(6139017,689151983LL<<20),reale(7385046,100502461LL<<22),
+      -reale(590509,2783893289LL<<20),reale(1800602,699157181LL<<21),
+      -reale(2092277,3566080099LL<<20),reale(381025,0x99466ecd7c000LL),
+      reale(61527183561LL,0xb18970e26a4cfLL),
       // C4[7], coeff of eps^17, polynomial in n of order 12
-      reale(-0x9192c40LL,0xe2c29b7e80000LL),
-      reale(-0x17049d9LL,0x2caeb0c720000LL),
-      reale(-0x10205dbLL,0x8757db9ac0000LL),
-      reale(0x337cb8eLL,0xc115854860000LL),reale(-0x2174afLL,0x3bada23fLL<<20),
-      reale(0x3acb11LL,0x1500d47da0000LL),
-      reale(-0x13bb400LL,0xb0e3688340000LL),
-      reale(0x35a000LL,0xf1b4463ee0000LL),reale(-0x1baec9LL,0x89846f7f80000LL),
-      reale(0x703a13LL,0xbd88356420000LL),reale(-0x21b08bLL,0xfd266e4bc0000LL),
-      reale(-269544LL,0xe44ca5c560000LL),reale(-156647LL,0x8434c4c595800LL),
-      reale(0xe534e50c9LL,0xb18970e26a4cfLL),
+      -reale(152644671,981125379LL<<19),-reale(24136152,0xd3514f38e0000LL),
+      -reale(16909786,8097141141LL<<18),reale(53988238,0xc115854860000LL),
+      -reale(2192558,3293732289LL<<20),reale(3853073,2819007469LL<<17),
+      -reale(20689919,5309095411LL<<18),reale(3514368,0xf1b4463ee0000LL),
+      -reale(1814216,3975618817LL<<19),reale(7354899,0xbd88356420000LL),
+      -reale(2207882,191252177LL<<18),-reale(269543,3717910997LL<<17),
+      -reale(156646,0x7bcb3b3a6a800LL),reale(61527183561LL,0xb18970e26a4cfLL),
       // C4[7], coeff of eps^16, polynomial in n of order 13
-      reale(0x3221594LL,0x16732a4380000LL),reale(0xf12442eLL,0x43ccb16eLL<<20),
-      reale(-0xbc0c6ecLL,0x26fd76b080000LL),
-      reale(-0x65e757LL,0x2c41c549LL<<20),reale(0x44f4dbLL,0xd91075f580000LL),
-      reale(0x3606438LL,0x1abdf574LL<<20),reale(-0xe94bbdLL,0xc3c7390280000LL),
-      reale(-0x38a850LL,0xac5435dfLL<<20),
-      reale(-0x110d691LL,0x2650b0c780000LL),reale(0x90e1d6LL,0xb2883a7aLL<<20),
-      reale(492167LL,0x56a6ee3480000LL),reale(0x3c4f9aLL,0xffff0735LL<<20),
-      reale(-0x333dbcLL,0x6719a23980000LL),reale(480004LL,0x1e727719e9000LL),
-      reale(0xe534e50c9LL,0xb18970e26a4cfLL),
+      reale(52565396,753292423LL<<19),reale(252855342,568744119LL<<21),
+      -reale(197183211,7281644191LL<<19),-reale(6678358,3552459447LL<<20),
+      reale(4519131,7283469291LL<<19),reale(56648760,112164189LL<<22),
+      -reale(15289276,2020707835LL<<19),-reale(3713103,1403767329LL<<20),
+      -reale(17880720,7304289905LL<<19),reale(9494998,1497636157LL<<21),
+      reale(492167,2907561065LL<<19),reale(3952538,4294903605LL<<20),
+      -reale(3358139,5130468237LL<<19),reale(480004,0x1e727719e9000LL),
+      reale(61527183561LL,0xb18970e26a4cfLL),
       // C4[7], coeff of eps^15, polynomial in n of order 14
-      reale(0x10aa9f77LL,0xd9972cba40000LL),
-      reale(-0x150d3784LL,0x97847cdde0000LL),
-      reale(0x71746cfLL,0x84cfe68e80000LL),
-      reale(0xd1e6767LL,0x1ac8f62b20000LL),
-      reale(-0xe5a8a42LL,0x863e23d2c0000LL),
-      reale(0x1ac644cLL,0xec7a345460000LL),reale(0x179c9f1LL,0x6c65b99fLL<<20),
-      reale(0x2dca296LL,0xb5345431a0000LL),
-      reale(-0x1edfab8LL,0x3845370b40000LL),
-      reale(-0x4d70c0LL,0xbf9adf9ae0000LL),
-      reale(-0x8ac6b1LL,0x3f2f732f80000LL),reale(0xd01d74LL,0x1b75c36820000LL),
-      reale(-0x1b0e0dLL,0xeaaa1b23c0000LL),reale(-460477LL,0xae54a57160000LL),
-      reale(-423739LL,0xa2676cb6dd800LL),
-      reale(0xe534e50c9LL,0xb18970e26a4cfLL),
+      reale(279617399,0xd9972cba40000LL),-reale(353187715,0x687b832220000LL),
+      reale(118965967,4456434973LL<<19),reale(220096359,3595022681LL<<17),
+      -reale(240814657,8170991797LL<<18),reale(28075084,0xec7a345460000LL),
+      reale(24758769,1818605983LL<<20),reale(48013974,0xb5345431a0000LL),
+      -reale(32373431,0xc7bac8f4c0000LL),-reale(5075135,8642954025LL<<17),
+      -reale(9094832,6469786017LL<<19),reale(13639028,3685620545LL<<17),
+      -reale(1773068,1431802737LL<<18),-reale(460476,0x51ab5a8ea0000LL),
+      -reale(423738,0x5d98934922800LL),reale(61527183561LL,0xb18970e26a4cfLL),
       // C4[7], coeff of eps^14, polynomial in n of order 15
-      reale(0xfa8152LL,0x8f8d14ffLL<<20),reale(-0x58ed16cLL,0x45c460aeLL<<20),
-      reale(0xf514970LL,0xeef1eddLL<<20),reale(-0x15ce9c39LL,0x339e324cLL<<20),
-      reale(0xb60efdeLL,0x595d0ebbLL<<20),reale(0x9bd7c06LL,0xa9a9ebeaLL<<20),
-      reale(-0x105baed2LL,0x60f6c899LL<<20),
-      reale(0x4f1d79dLL,0x4e054188LL<<20),reale(0x204a5c8LL,0x6713c077LL<<20),
-      reale(0x181ac5fLL,0xb2418726LL<<20),reale(-0x2bb8732LL,0x1dd89a55LL<<20),
-      reale(0x4483c0LL,0x373890c4LL<<20),reale(0xf6cd4LL,0x292bca33LL<<20),
-      reale(0x98cb2bLL,0x7b999262LL<<20),reale(-0x56064cLL,0x84bb3411LL<<20),
-      reale(570308LL,0x8f0afe45ec000LL),reale(0xe534e50c9LL,0xb18970e26a4cfLL),
+      reale(16417106,2408387839LL<<20),-reale(93245803,1562234793LL<<21),
+      reale(256985456,250552029LL<<20),-reale(365861944,857240429LL<<22),
+      reale(190902238,1499270843LL<<20),reale(163412998,1423242741LL<<21),
+      -reale(274443985,2668181351LL<<20),reale(82958237,163620913LL<<23),
+      reale(33859016,1729347703LL<<20),reale(25275487,1495319443LL<<21),
+      -reale(45844273,3794232747LL<<20),reale(4490176,231613489LL<<22),
+      reale(1010900,690735667LL<<20),reale(10013483,1036831025LL<<21),
+      -reale(5637707,2068106223LL<<20),reale(570308,0x8f0afe45ec000LL),
+      reale(61527183561LL,0xb18970e26a4cfLL),
       // C4[7], coeff of eps^13, polynomial in n of order 16
-      reale(-25658LL,0xa24a336cLL<<20),reale(-608652LL,0x5343bf2a40000LL),
-      reale(0xc2c394LL,0x3febf40680000LL),
-      reale(-0x4943b9aLL,0xd17b059ec0000LL),
-      reale(0xda1446bLL,0xf63dc5d1LL<<20),
-      reale(-0x15e0ed11LL,0x8a9235b40000LL),
-      reale(0xfb43f95LL,0xff62b37b80000LL),
-      reale(0x4aeefb2LL,0xffb10f8fc0000LL),
-      reale(-0x10e69c67LL,0x2a0f4fb6LL<<20),
-      reale(0x938931eLL,0x897e8b6c40000LL),
-      reale(0x102713cLL,0x39ce093080000LL),
-      reale(-0x622837LL,0x8a50a620c0000LL),
-      reale(-0x29061dfLL,0xc790fe9bLL<<20),
-      reale(0x15108abLL,0xaa7600dd40000LL),reale(0x196a29LL,0xfe01d2a580000LL),
-      reale(-163222LL,0x1f5352d1c0000LL),reale(-0x1225fcLL,0x8993dd9f5d000LL),
-      reale(0xe534e50c9LL,0xb18970e26a4cfLL),
+      -reale(25657,393048869LL<<22),-reale(608651,0xacbc40d5c0000LL),
+      reale(12764052,2144856077LL<<19),-reale(76823449,3121867141LL<<18),
+      reale(228672619,4131243473LL<<20),-reale(367062288,0xf756dca4c0000LL),
+      reale(263470997,8569317111LL<<19),reale(78573490,0xffb10f8fc0000LL),
+      -reale(283548774,1794660389LL<<21),reale(154702622,9227087281LL<<18),
+      reale(16937276,1939608161LL<<19),-reale(6432822,7897704317LL<<18),
+      -reale(43016670,946798949LL<<20),reale(22087851,0xaa7600dd40000LL),
+      reale(1665577,8523064651LL<<19),-reale(163221,0xe0acad2e40000LL),
+      -reale(1189371,0x766c2260a3000LL),reale(61527183561LL,0xb18970e26a4cfLL),
       // C4[7], coeff of eps^12, polynomial in n of order 17
-      -real(0x13bc5107d5fLL<<20),-real(0x75f6b32585LL<<24),
-      reale(-17218LL,0x7dbad4ffLL<<20),reale(-426470LL,0xbd931c8aLL<<20),
-      reale(0x8f9bafLL,0x43ffc94dLL<<20),reale(-0x39817fbLL,0xf009fa44LL<<20),
-      reale(0xb9bb58dLL,0x6d6ce16bLL<<20),reale(-0x1509419eLL,0xc15c8beLL<<20),
-      reale(0x139068ebLL,0x8f597f39LL<<20),
-      reale(-0x20f5f87LL,0x540ccfd8LL<<20),
-      reale(-0xecdd73fLL,0x16982497LL<<20),reale(0xd82af57LL,0xa70b7772LL<<20),
-      reale(-0x26418d9LL,0x51eb3365LL<<20),reale(-0x18b2ccdLL,0xab2a76cLL<<20),
-      reale(-0xf4cf65LL,0x68ad2d83LL<<20),reale(0x1b5e758LL,0xd9a227a6LL<<20),
-      reale(-0x928681LL,0x6ebd74d1LL<<20),reale(502063LL,0xa52218333a000LL),
-      reale(0xe534e50c9LL,0xb18970e26a4cfLL),
+      -real(0x13bc5107d5fLL<<20),-real(506650109317LL<<24),
+      -reale(17217,2185571073LL<<20),-reale(426469,557216187LL<<21),
+      reale(9411503,1140836685LL<<20),-reale(60299258,66945391LL<<22),
+      reale(194753933,1835852139LL<<20),-reale(352928157,2046106529LL<<21),
+      reale(328231147,2405007161LL<<20),-reale(34561926,360605189LL<<23),
+      -reale(248371006,3915897705LL<<20),reale(226668375,1401273273LL<<21),
+      -reale(40114392,2920598683LL<<20),-reale(25898188,1028871717LL<<22),
+      -reale(16043876,2538787453LL<<20),reale(28698456,1825641427LL<<21),
+      -reale(9602688,2437057327LL<<20),reale(502063,0xa52218333a000LL),
+      reale(61527183561LL,0xb18970e26a4cfLL),
       // C4[7], coeff of eps^11, polynomial in n of order 18
-      -real(0x98838ab2280000LL),-real(0x25e72e362c40000LL),
-      -real(0xb4eb768b34LL<<20),-real(0x4616f301f1bc0000LL),
-      reale(-10660LL,0x17f0af3a80000LL),reale(-276844LL,0xeaf150cc0000LL),
-      reale(0x628feeLL,0x1955d6d9LL<<20),reale(-0x2a3b5a2LL,0xdcad2d7d40000LL),
-      reale(0x94c6c4bLL,0xf835425780000LL),
-      reale(-0x13107e6eLL,0x54794f65c0000LL),
-      reale(0x163219a4LL,0xa7c7f066LL<<20),
-      reale(-0x9f23cf6LL,0x4514d1f640000LL),
-      reale(-0x8debedaLL,0x18edabb480000LL),
-      reale(0xf860e5aLL,0x13d2525ec0000LL),
-      reale(-0x7d8dfc8LL,0xe67aaef3LL<<20),reale(0x2a5aadLL,0xa4d87cf40000LL),
-      reale(0xbbc726LL,0xbbbb48d180000LL),reale(0x51b751LL,0x8c165777c0000LL),
-      reale(-0x3c855fLL,0x343f7404e9000LL),
-      reale(0xe534e50c9LL,0xb18970e26a4cfLL),
+      -real(81880241733LL<<19),-real(651169421489LL<<18),
+      -real(194261131981LL<<22),-real(0x4616f301f1bc0000LL),
+      -reale(10659,7786635659LL<<19),-reale(276843,0xf150eaf340000LL),
+      reale(6459374,425055961LL<<20),-reale(44283297,2370521611LL<<18),
+      reale(156003403,8328479919LL<<19),-reale(319848045,0xab86b09a40000LL),
+      reale(372382116,1407449139LL<<21),-reale(166870261,0xbaeb2e09c0000LL),
+      -reale(148815577,7753476247LL<<19),reale(260443738,1330203003LL<<18),
+      -reale(131653575,428167437LL<<20),reale(2775725,691412797LL<<18),
+      reale(12306214,6299226531LL<<19),reale(5355345,9401097695LL<<18),
+      -reale(3966302,0xcbc08bfb17000LL),reale(61527183561LL,0xb18970e26a4cfLL),
       // C4[7], coeff of eps^10, polynomial in n of order 19
-      -real(0x6597eabbLL<<20),-real(0x1448d4182LL<<20),
-      -real(0x4866a1e49LL<<20),-real(0x1295eca79LL<<24),
-      -real(0x5bf59820d7LL<<20),-real(0x251667dfd9eLL<<20),
-      reale(-5904LL,0xd0f54b9bLL<<20),reale(-161528LL,0x78562a54LL<<20),
-      reale(0x3d21c2LL,0x4bcc950dLL<<20),reale(-0x1c31d50LL,0x638e5e46LL<<20),
-      reale(0x6cf9729LL,0x8be6b97fLL<<20),reale(-0xfd832e7LL,0xe1ce6c38LL<<20),
-      reale(0x169aa451LL,0xfa7fa6f1LL<<20),
-      reale(-0x1172181cLL,0x7709822aLL<<20),
-      reale(0x12fe2bbLL,0xdf619b63LL<<20),reale(0xbc8d686LL,0x5c064e1cLL<<20),
-      reale(-0xbc41c83LL,0xc9b184d5LL<<20),reale(0x5014eeaLL,0x2e2b1e0eLL<<20),
-      reale(-0xc41e5eLL,0xafca6147LL<<20),reale(-602477LL,0xa03d7c8f54000LL),
-      reale(0xe534e50c9LL,0xb18970e26a4cfLL),
+      -real(1704454843LL<<20),-real(2722537665LL<<21),-real(19434970697LL<<20),
+      -real(4989045369LL<<24),-real(394962411735LL<<20),
+      -real(0x128b33efecfLL<<21),-reale(5903,789230693LL<<20),
+      -reale(161527,569013611LL<<22),reale(4006338,1271698701LL<<20),
+      -reale(29564239,1312346333LL<<21),reale(114267945,2347153791LL<<20),
+      -reale(265827046,63320697LL<<23),reale(379233361,4202669809LL<<20),
+      -reale(292689947,1148927723LL<<21),reale(19915451,3747715939LL<<20),
+      reale(197711494,385979271LL<<22),-reale(197401730,911113003LL<<20),
+      reale(83971818,387288839LL<<21),-reale(12852829,1345691321LL<<20),
+      -reale(602476,0x5fc28370ac000LL),reale(61527183561LL,0xb18970e26a4cfLL),
       // C4[7], coeff of eps^9, polynomial in n of order 20
-      -real(0x48a0a3640000LL),-real(0xc9814e4b0000LL),-real(0x25c525dfa0000LL),
-      -real(0x7c4fe70d90000LL),-real(0x1ca738085LL<<20),
+      -real(304621785LL<<18),-real(0xc9814e4b0000LL),-real(5069418237LL<<17),
+      -real(0x7c4fe70d90000LL),-real(7691534469LL<<20),
       -real(0x7a02179d470000LL),-real(0x274586580a60000LL),
-      -real(0x10907db87bd50000LL),reale(-2774LL,0x6efa5dac40000LL),
-      reale(-80425LL,0xffb54a33d0000LL),reale(0x209010LL,0xd8c3d9bae0000LL),
-      reale(-0x10469ddLL,0x78f6777af0000LL),
-      reale(0x4577ed4LL,0xce98cb3d80000LL),
-      reale(-0xb7fa2deLL,0xbb7ab71410000LL),
-      reale(0x13ceefd4LL,0xa61d5e5020000LL),
-      reale(-0x15b7842fLL,0xd9f1867b30000LL),
-      reale(0xcd32ef0LL,0xfd6630ec0000LL),reale(0x50e620LL,0x177c84ac50000LL),
-      reale(-0x71131b7LL,0x95aaf49560000LL),
-      reale(0x55092a7LL,0x5c73fd2370000LL),
-      reale(-0x16d9d9cLL,0x8a3809d99cc00LL),
-      reale(0xe534e50c9LL,0xb18970e26a4cfLL),
+      -real(0x10907db87bd50000LL),-reale(2773,9732262223LL<<18),
+      -reale(80424,78339267LL<<16),reale(2134032,0xd8c3d9bae0000LL),
+      -reale(17066460,0x8709888510000LL),reale(72842964,6932239995LL<<19),
+      -reale(192914141,0x448548ebf0000LL),reale(332328916,0xa61d5e5020000LL),
+      -reale(364348462,0x260e7984d0000LL),reale(215166704,0xfd6630ec0000LL),
+      reale(5301792,6304582341LL<<16),-reale(118567350,0x6a550b6aa0000LL),
+      reale(89166503,0x5c73fd2370000LL),-reale(23960987,0x75c7f62663400LL),
+      reale(61527183561LL,0xb18970e26a4cfLL),
       // C4[7], coeff of eps^8, polynomial in n of order 21
-      -real(0x2d470940000LL),-real(0x71ae7bLL<<20),-real(0x12ee0a8c0000LL),
-      -real(0x360310f80000LL),-real(0xa6fff6c40000LL),-real(0x23849d7cLL<<20),
-      -real(0x87e0edbbc0000LL),-real(0x25a8132a880000LL),
-      -real(0xcadd965ff40000LL),-real(0x59fdf46f7dLL<<20),
-      -real(0x3e4f1a2b29ec0000LL),reale(-30848LL,0x62a4d51e80000LL),
-      reale(882325LL,0x7fea51fdc0000LL),reale(-0x759934LL,0x3a79442LL<<20),
-      reale(0x22e2ad0LL,0x28af9d6e40000LL),
-      reale(-0x697b063LL,0x8d593f0580000LL),
-      reale(0xd895360LL,0x9e98f54ac0000LL),
-      reale(-0x13411d4cLL,0x97892681LL<<20),
-      reale(0x12bb199cLL,0xb5ebcf2b40000LL),
-      reale(-0xbdfd6a7LL,0xa4c0e3cc80000LL),
-      reale(0x467ae98LL,0x8d3450a7c0000LL),
-      reale(-0xb902a6LL,0xf8d56ac47a800LL),
-      reale(0xe534e50c9LL,0xb18970e26a4cfLL),
+      -real(11869221LL<<18),-real(7450235LL<<20),-real(79397539LL<<18),
+      -real(113271327LL<<19),-real(700448177LL<<18),-real(148973407LL<<22),
+      -real(9118660335LL<<18),-real(20216702289LL<<19),
+      -real(0xcadd965ff40000LL),-real(386512744317LL<<20),
+      -real(0xf93c68aca7bLL<<18),-reale(30847,5279995331LL<<19),
+      reale(882325,8584251383LL<<18),-reale(7706931,2116826591LL<<21),
+      reale(36580048,2730390969LL<<18),-reale(110604386,3847062005LL<<19),
+      reale(227103584,0x9e98f54ac0000LL),-reale(323034443,1752619391LL<<20),
+      reale(314251676,0xb5ebcf2b40000LL),-reale(199218854,3061725287LL<<19),
+      reale(73903768,9476063903LL<<18),-reale(12124837,0x72a953b85800LL),
+      reale(61527183561LL,0xb18970e26a4cfLL),
       // C4[7], coeff of eps^7, polynomial in n of order 22
-      -real(0x1190ae0000LL),-real(0x28e92d0000LL),-real(0x63f2a40000LL),
-      -real(0x101b8fb0000LL),-real(0x2c2c61a0000LL),-real(0x8210e690000LL),
-      -real(0x1a03615LL<<20),-real(0x5bebf1b70000LL),-real(0x16e928a860000LL),
-      -real(0x6a5f183250000LL),-real(0x25b29487fc0000LL),
+      -real(575575LL<<17),-real(2681133LL<<16),-real(1637545LL<<18),
+      -real(16890107LL<<16),-real(23159565LL<<17),-real(0x8210e690000LL),
+      -real(27276821LL<<20),-real(0x5bebf1b70000LL),-real(3075032387LL<<17),
+      -real(0x6a5f183250000LL),-real(40477467135LL<<18),
       -real(0x11b5c31caf30000LL),-real(0xd14cd352ff20000LL),
-      reale(-6970LL,0x4e82e769f0000LL),reale(216834LL,0xe733e07580000LL),
-      reale(-0x1fd87cLL,0xeacaf9510000LL),reale(0xa93ca1LL,0x4b9d7f7a20000LL),
-      reale(-0x2484521LL,0x566041ce30000LL),
-      reale(0x57a3f81LL,0x9718fbaac0000LL),
-      reale(-0x9563212LL,0xbe72819150000LL),
-      reale(0xb03347dLL,0x6102c9a360000LL),
-      reale(-0x7b5718bLL,0x8e472da70000LL),
-      reale(0x249ddb5LL,0x415c2de726c00LL),
-      reale(0xe534e50c9LL,0xb18970e26a4cfLL),
+      -reale(6969,0xb17d189610000LL),reale(216834,7757873387LL<<19),
+      -reale(2087035,0xf153506af0000LL),reale(11091105,0x4b9d7f7a20000LL),
+      -reale(38290720,0xa99fbe31d0000LL),reale(91897729,0x9718fbaac0000LL),
+      -reale(156643857,0x418d7e6eb0000LL),reale(184759421,0x6102c9a360000LL),
+      -reale(129331594,0xf71b8d2590000LL),reale(38395317,0x415c2de726c00LL),
+      reale(61527183561LL,0xb18970e26a4cfLL),
       // C4[8], coeff of eps^29, polynomial in n of order 0
-      real(0x1c490000LL),real(0x112c657acf71bLL),
+      real(7241<<16),real(0x112c657acf71bLL),
       // C4[8], coeff of eps^28, polynomial in n of order 1
-      real(0x11c82fLL<<20),real(0x60ae460000LL),real(0x21ffb4a731cf423fLL),
+      real(1165359LL<<20),real(3168035LL<<17),real(0x21ffb4a731cf423fLL),
       // C4[8], coeff of eps^27, polynomial in n of order 2
-      real(0x4fc786eLL<<20),-real(0x837a8d5LL<<20),real(0x259df8d30000LL),
-      reale(4837LL,0x68f14547adebLL),
+      real(41827383LL<<21),-real(137865429LL<<20),real(631109843LL<<16),
+      reale(4837,0x68f14547adebLL),
       // C4[8], coeff of eps^26, polynomial in n of order 3
-      real(0x329e2a986cLL<<20),-real(0x285690bb68LL<<20),
-      real(0x10193db64LL<<20),real(0x5c4a2579a0000LL),
-      reale(0x35f3f9LL,0xba8f0d3ad9e09LL),
+      real(54350489115LL<<22),-real(21656377197LL<<23),real(1080358617LL<<22),
+      real(0x5c4a2579a0000LL),reale(3535865,0xba8f0d3ad9e09LL),
       // C4[8], coeff of eps^25, polynomial in n of order 4
-      reale(4480LL,0xf38d93cLL<<20),-real(0x5f0bc8cec07LL<<20),
-      real(0x33002b9943eLL<<20),-real(0x51d1e6f78cdLL<<20),
-      real(0x14fb331d33f30000LL),reale(0x8a412feLL,0xe0e91e6ce4f71LL),
+      reale(4480,63845967LL<<22),-real(0x5f0bc8cec07LL<<20),
+      real(0x198015cca1fLL<<21),-real(0x51d1e6f78cdLL<<20),
+      real(0x14fb331d33f30000LL),reale(144970494,0xe0e91e6ce4f71LL),
       // C4[8], coeff of eps^24, polynomial in n of order 5
-      reale(226427LL,0x3825b25420000LL),reale(-36731LL,0x39e1166a80000LL),
-      reale(116830LL,0x2c3ad768e0000LL),reale(-76967LL,0xf6da987d40000LL),
+      reale(226427,7535956641LL<<17),-reale(36730,6647829291LL<<19),
+      reale(116830,5936429895LL<<17),-reale(76966,613785099LL<<18),
       -real(0x2a948e8d73a60000LL),-real(0x116572b5168a4000LL),
-      reale(0x13fb6bed6LL,0x81b165bd17b55LL),
+      reale(5363908310LL,0x81b165bd17b55LL),
       // C4[8], coeff of eps^23, polynomial in n of order 6
-      reale(151394LL,0xe6754a3fLL<<20),reale(-105724LL,0xd536926a80000LL),
-      reale(240417LL,0xf928fd4aLL<<20),reale(-54673LL,0x890ab1b980000LL),
-      reale(46185LL,0xc0891895LL<<20),reale(-67791LL,0x87f19e3880000LL),
-      reale(15270LL,0xa469197488000LL),reale(0x13fb6bed6LL,0x81b165bd17b55LL),
+      reale(151394,3866446399LL<<20),-reale(105723,1435687723LL<<19),
+      reale(240417,2090106533LL<<21),-reale(54672,3991575693LL<<19),
+      reale(46185,3230210197LL<<20),-reale(67790,4028416911LL<<19),
+      reale(15270,0xa469197488000LL),reale(5363908310LL,0x81b165bd17b55LL),
       // C4[8], coeff of eps^22, polynomial in n of order 7
-      reale(-105619LL,0x59d20a72LL<<20),reale(-0x51a94aLL,0xa61c793cLL<<20),
-      reale(0x34977aLL,0xc986a916LL<<20),reale(-453182LL,0x778b7be8LL<<20),
-      reale(0x2518e4LL,0xc332ee1aLL<<20),reale(-0x12e926LL,0xf0ee4e14LL<<20),
-      reale(-60031LL,0x396ad3beLL<<20),reale(-26717LL,0x95d5a29630000LL),
-      reale(0x103c47b0e4LL,0x96022a9a34351LL),
+      -reale(105618,1394014919LL<<21),-reale(5351753,377020849LL<<22),
+      reale(3446650,1690522763LL<<21),-reale(453181,286167171LL<<23),
+      reale(2431204,1637447437LL<<21),-reale(1239333,63204475LL<<22),
+      -reale(60030,1665832481LL<<21),-reale(26716,0x6a2a5d69d0000LL),
+      reale(69730808036LL,0x96022a9a34351LL),
       // C4[8], coeff of eps^21, polynomial in n of order 8
-      reale(0x429294LL,0x6ef15f2cLL<<20),reale(-0xa122d5LL,0xe816267c80000LL),
-      reale(656010LL,0xb16861d1LL<<20),reale(-0x2ed2c5LL,0xcbbaecd80000LL),
-      reale(0x446663LL,0xed3c1016LL<<20),reale(-516360LL,0x4e1a9bce80000LL),
-      reale(0xf9a79LL,0x1df4b61bLL<<20),reale(-0x136d4aLL,0x99403b9f80000LL),
-      reale(245310LL,0x45a78ad538000LL),
-      reale(0x103c47b0e4LL,0x96022a9a34351LL),
+      reale(4362900,465328075LL<<22),-reale(10560212,802403079LL<<19),
+      reale(656010,2976408017LL<<20),-reale(3068612,8162681445LL<<19),
+      reale(4482659,1990068235LL<<21),-reale(516359,5969201251LL<<19),
+      reale(1022585,502576667LL<<20),-reale(1273161,3447687361LL<<19),
+      reale(245310,0x45a78ad538000LL),reale(69730808036LL,0x96022a9a34351LL),
       // C4[8], coeff of eps^20, polynomial in n of order 9
-      reale(0x1687ccaLL,0x308c5cb580000LL),reale(-0x5949d2LL,0xb286146cLL<<20),
-      reale(255419LL,0xcc27926280000LL),reale(-0xa1215fLL,0xae9e9731LL<<20),
-      reale(0x2eabc7LL,0x9f7d07af80000LL),reale(-782823LL,0xe040cb36LL<<20),
-      reale(0x3e2042LL,0x5a62f9dc80000LL),reale(-0x163ef8LL,0x71af42bbLL<<20),
-      reale(-144541LL,0xe44e322980000LL),reale(-76350LL,0xd3e3da2a70000LL),
-      reale(0x103c47b0e4LL,0x96022a9a34351LL),
+      reale(23624906,1629010283LL<<19),-reale(5851601,324958949LL<<22),
+      reale(255419,6850290885LL<<19),-reale(10559838,1365338319LL<<20),
+      reale(3058631,5351542623LL<<19),-reale(782822,266312293LL<<21),
+      reale(4071490,3032871865LL<<19),-reale(1457911,2387656005LL<<20),
+      -reale(144540,929274797LL<<19),-reale(76349,0x2c1c25d590000LL),
+      reale(69730808036LL,0x96022a9a34351LL),
       // C4[8], coeff of eps^19, polynomial in n of order 10
-      reale(0x15fd20dLL,0x8ecc7fd5LL<<20),reale(0x809863LL,0x5fb9cbd280000LL),
-      reale(0x129e408LL,0x57a5b884LL<<20),reale(-0xc0d5caLL,0x54905fd580000LL),
-      reale(-0x1c5fd4LL,0x81456fb3LL<<20),reale(-0x75cdb1LL,0xb9b4f98880000LL),
-      reale(0x5b16e9LL,0x3561cdc2LL<<20),reale(-4465LL,0xaac18f4b80000LL),
-      reale(0x1dd331LL,0xb0f32b11LL<<20),reale(-0x1d1140LL,0x1a331f7e80000LL),
-      reale(302310LL,0x7de136fc28000LL),
-      reale(0x103c47b0e4LL,0x96022a9a34351LL),
+      reale(23056909,2395766741LL<<20),reale(8427619,3212023717LL<<19),
+      reale(19522568,367619617LL<<22),-reale(12637641,5752438869LL<<19),
+      -reale(1859539,2126155853LL<<20),-reale(7720368,2358643951LL<<19),
+      reale(5969641,447801057LL<<21),-reale(4464,2860310889LL<<19),
+      reale(1954609,2968726289LL<<20),-reale(1904959,7710818563LL<<19),
+      reale(302310,0x7de136fc28000LL),reale(69730808036LL,0x96022a9a34351LL),
       // C4[8], coeff of eps^18, polynomial in n of order 11
-      reale(-0x2126789LL,0x5bc7259eLL<<20),
-      reale(-0x2b00200LL,0x590f388cLL<<20),reale(0x2528e33LL,0x4c91548aLL<<20),
-      reale(0x7fd60bLL,0xe7688afLL<<24),reale(0xa4e05cLL,0x2043c096LL<<20),
-      reale(-0x117f915LL,0xed6db654LL<<20),reale(-8505LL,0xab065182LL<<20),
-      reale(-0x2bdacbLL,0xcdf5fc78LL<<20),reale(0x6adb6fLL,0x2051f70eLL<<20),
-      reale(-0x1637a0LL,0x89786f1cLL<<20),reale(-262922LL,0x3c6538faLL<<20),
-      reale(-186714LL,0x99e7b25d50000LL),
-      reale(0x103c47b0e4LL,0x96022a9a34351LL),
+      -reale(34760584,1377594673LL<<21),-reale(45089279,700199389LL<<22),
+      reale(38964787,642296389LL<<21),reale(8377867,242649263LL<<24),
+      reale(10805340,270655563LL<<21),-reale(18348308,77894251LL<<22),
+      -reale(8504,712824639LL<<21),-reale(2874058,104939633LL<<23),
+      reale(7002991,271121287LL<<21),-reale(1456031,497148985LL<<22),
+      -reale(262921,1640850307LL<<21),-reale(186713,0x66184da2b0000LL),
+      reale(69730808036LL,0x96022a9a34351LL),
       // C4[8], coeff of eps^17, polynomial in n of order 12
-      reale(0xfe6097eLL,0x7e5f0e72LL<<20),
-      reale(-0x5809df8LL,0xf6b56d0680000LL),
-      reale(-0x25f1140LL,0x5c7b49afLL<<20),
-      reale(-0x1701d2bLL,0x6003312f80000LL),reale(0x31a00bdLL,0x3ee834cLL<<20),
-      reale(-214470LL,0x8f5e194880000LL),reale(-32745LL,0x34f06869LL<<20),
-      reale(-0x1221d5eLL,0x739d847180000LL),reale(0x59fbb5LL,0x5b836626LL<<20),
-      reale(758445LL,0x105399ca80000LL),reale(0x3fdd18LL,0xb1cf9a3LL<<20),
-      reale(-0x2d195eLL,0x5aac587380000LL),reale(363691LL,0xed908404b8000LL),
-      reale(0x103c47b0e4LL,0x96022a9a34351LL),
+      reale(266733950,1060079417LL<<21),-reale(92315127,311764467LL<<19),
+      -reale(39784767,2743383633LL<<20),-reale(24124714,5368290721LL<<19),
+      reale(52035773,16490707LL<<22),-reale(214469,3779317103LL<<19),
+      -reale(32744,3406796695LL<<20),-reale(19012957,4710528797LL<<19),
+      reale(5897141,767669011LL<<21),reale(758445,547828629LL<<19),
+      reale(4185368,186448291LL<<20),-reale(2955613,5547446041LL<<19),
+      reale(363691,0xed908404b8000LL),reale(69730808036LL,0x96022a9a34351LL),
       // C4[8], coeff of eps^16, polynomial in n of order 13
-      reale(-0xf2b7a6fLL,0x1d474944c0000LL),
-      reale(-0x377451dLL,0xa8443a85LL<<20),
-      reale(0x101fd960LL,0x2f7f301540000LL),
-      reale(-0x8f09975LL,0x19b87a0980000LL),
-      reale(-0x1a1005cLL,0x66191615c0000LL),reale(0x3d3755LL,0x309016aeLL<<20),
-      reale(0x34660eeLL,0xaf3dd22640000LL),
-      reale(-0x10ab337LL,0x8b1ad5d280000LL),
-      reale(-0x687e5aLL,0x64417926c0000LL),reale(-0xb55d63LL,0x3b77ecd7LL<<20),
-      reale(0xb2a250LL,0xa1dc1f740000LL),reale(-595379LL,0xb781251b80000LL),
-      reale(-329168LL,0x1f996977c0000LL),reale(-450082LL,0xa6a2e9d6a8000LL),
-      reale(0x103c47b0e4LL,0x96022a9a34351LL),
+      -reale(254507630,0xe2b8b6bb40000LL),-reale(58148124,1471923579LL<<20),
+      reale(270522720,3187458133LL<<18),-reale(149985652,7726894061LL<<19),
+      -reale(27328603,0x99e6e9ea40000LL),reale(4011861,407374679LL<<21),
+      reale(54943982,0xaf3dd22640000LL),-reale(17478454,3922351195LL<<19),
+      -reale(6848089,0x9bbe86d940000LL),-reale(11885922,3297252137LL<<20),
+      reale(11706960,678889437LL<<18),-reale(595378,2432546249LL<<19),
+      -reale(329167,0xe066968840000LL),-reale(450081,0x595d162958000LL),
+      reale(69730808036LL,0x96022a9a34351LL),
       // C4[8], coeff of eps^15, polynomial in n of order 14
-      reale(-0x9efcbe0LL,0x308817b9LL<<20),
-      reale(0x12ae6dc7LL,0x456ffc2b80000LL),
-      reale(-0x11d592aaLL,0x667fb09aLL<<20),
-      reale(0x1740edfLL,0x9e2d491880000LL),reale(0xec8a086LL,0xc154cbbbLL<<20),
-      reale(-0xc84d74eLL,0xbebcd1580000LL),reale(0xa66dc1LL,0xe50050bcLL<<20),
-      reale(0x1c8f8caLL,0x3cc1e1c280000LL),reale(0x2670572LL,0xa270573dLL<<20),
-      reale(-0x230b2e7LL,0x4751f8bf80000LL),
-      reale(-0x1d847dLL,0xf13cb6deLL<<20),reale(-492519LL,0x721bebac80000LL),
-      reale(0x97d083LL,0x4ad3973fLL<<20),reale(-0x4806caLL,0xf46f4c2980000LL),
-      reale(398374LL,0x9081f25c18000LL),
-      reale(0x103c47b0e4LL,0x96022a9a34351LL),
+      -reale(166710239,3480741959LL<<20),reale(313421255,2329933911LL<<19),
+      -reale(299209385,1287661491LL<<21),reale(24383199,5307535921LL<<19),
+      reale(248029318,3243559867LL<<20),-reale(210032461,8189928917LL<<19),
+      reale(10907073,960500783LL<<22),reale(29948106,2038678405LL<<19),
+      reale(40306034,2725271357LL<<20),-reale(36745958,6196825729LL<<19),
+      -reale(1934460,123839633LL<<21),-reale(492518,4761069735LL<<19),
+      reale(9949315,1255380799LL<<20),-reale(4720329,388065197LL<<19),
+      reale(398374,0x9081f25c18000LL),reale(69730808036LL,0x96022a9a34351LL),
       // C4[8], coeff of eps^14, polynomial in n of order 15
-      reale(-0x53ea18LL,0x8f9d759eLL<<20),reale(0x25035b8LL,0x53465694LL<<20),
-      reale(-0x8587e53LL,0x343466faLL<<20),
-      reale(0x1154a7d9LL,0x4e192088LL<<20),
-      reale(-0x13d3029dLL,0xaac74476LL<<20),
-      reale(0x7164f9bLL,0xae30c5fcLL<<20),reale(0xb4a7542LL,0x1c5614d2LL<<20),
-      reale(-0xf4937a3LL,0x175affbLL<<24),reale(0x4abc2d8LL,0x94a366ceLL<<20),
-      reale(0x21de83bLL,0x12a9f664LL<<20),reale(0x7ac24cLL,0xb8d212aLL<<20),
-      reale(-0x28b7cc9LL,0x364e92d8LL<<20),reale(0xe8201fLL,0x3c5752a6LL<<20),
-      reale(0x2bb045LL,0xd782cdccLL<<20),reale(284029LL,0xe5250202LL<<20),
-      reale(-0x11b778LL,0x93e70d5290000LL),
-      reale(0x103c47b0e4LL,0x96022a9a34351LL),
+      -reale(5499415,942753073LL<<21),reale(38811064,349279653LL<<22),
+      -reale(140017234,1709558915LL<<21),reale(290760665,163783697LL<<23),
+      -reale(332595868,714890693LL<<21),reale(118902683,730607999LL<<22),
+      reale(189429058,237701737LL<<21),-reale(256456610,243945477LL<<24),
+      reale(78365400,1246868327LL<<21),reale(35514427,78282137LL<<22),
+      reale(8045132,96899221LL<<21),-reale(42695880,422981029LL<<23),
+      reale(15212575,506177875LL<<21),reale(2863173,903918451LL<<22),
+      reale(284029,1922203905LL<<21),-reale(1161079,0x6c18f2ad70000LL),
+      reale(69730808036LL,0x96022a9a34351LL),
       // C4[8], coeff of eps^13, polynomial in n of order 16
-      reale(5407LL,0xd1adcca8LL<<20),reale(151556LL,0x14ad8d3780000LL),
-      reale(-0x3a8b7eLL,0x195056e3LL<<20),reale(0x1b69425LL,0xeee8aa0680000LL),
-      reale(-0x6a9225eLL,0x4c3075feLL<<20),reale(0xf50f617LL,0x70ef2a580000LL),
-      reale(-0x14b95b24LL,0xd5944dd9LL<<20),
-      reale(0xce101ceLL,0x4e2988f480000LL),reale(0x543476cLL,0xbc87e254LL<<20),
-      reale(-0xfb71d1dLL,0x5b9566d380000LL),reale(0x9c2aeceLL,0x23dc74fLL<<20),
-      reale(-0x1b8652LL,0x43134e2280000LL),
-      reale(-0x1583d9cLL,0xf311d0aaLL<<20),
-      reale(-0x1437434LL,0x8eb4b8c180000LL),
-      reale(0x187864bLL,0xb973c245LL<<20),reale(-0x712b83LL,0x313bc89080000LL),
-      reale(268690LL,0x9ce0757848000LL),
-      reale(0x103c47b0e4LL,0x96022a9a34351LL),
+      reale(5407,439728533LL<<23),reale(151556,693836399LL<<19),
+      -reale(3836797,3870271773LL<<20),reale(28742693,8016450573LL<<19),
+      -reale(111747677,1508361473LL<<21),reale(256964119,236840267LL<<19),
+      -reale(347691811,711701031LL<<20),reale(216072654,2622689769LL<<19),
+      reale(88295276,790755477LL<<22),-reale(263658780,5516898905LL<<19),
+      reale(163753678,37603151LL<<20),-reale(1803857,6339257275LL<<19),
+      -reale(22560155,108468139LL<<21),-reale(21197875,3801517693LL<<19),
+      reale(25658955,3111371333LL<<20),-reale(7416706,6937931487LL<<19),
+      reale(268690,0x9ce0757848000LL),reale(69730808036LL,0x96022a9a34351LL),
       // C4[8], coeff of eps^12, polynomial in n of order 17
-      real(0x2b0d53a8d380000LL),real(0x128427872f8LL<<20),
-      reale(3152LL,0x21e0ef9c80000LL),reale(92558LL,0x88d6b079LL<<20),
-      reale(-0x25bd73LL,0xcc4c448580000LL),reale(0x12d7a03LL,0x2af5113aLL<<20),
-      reale(-0x4f4f5f9LL,0x3ab8fbce80000LL),
-      reale(0xca92d12LL,0x7b25aa7bLL<<20),
-      reale(-0x14180130LL,0x5b5be5b780000LL),
-      reale(0x11d6daa4LL,0xa65ca17cLL<<20),
-      reale(-0x30b5c07LL,0x78d6768080000LL),
-      reale(-0xbf87222LL,0xb76dd37dLL<<20),
-      reale(0xd9673edLL,0x4f07ee6980000LL),
-      reale(-0x5366bc7LL,0xec8e7dbeLL<<20),
-      reale(-0x9376a5LL,0x29d081b280000LL),reale(0x949ea1LL,0xe9a6e57fLL<<20),
-      reale(0x5d1998LL,0x9502809b80000LL),reale(-0x36bff2LL,0x7bbdd4c1b0000LL),
-      reale(0x103c47b0e4LL,0x96022a9a34351LL),
+      real(369814360487LL<<19),real(159053188703LL<<23),
+      reale(3152,1136779065LL<<19),reale(92558,2295771257LL<<20),
+      -reale(2473330,1734833909LL<<19),reale(19757571,360351901LL<<21),
+      -reale(83162616,6619531363LL<<19),reale(212413714,2066066043LL<<20),
+      -reale(337117487,5524436113LL<<19),reale(299293348,697772127LL<<22),
+      -reale(51076102,4535292671LL<<19),-reale(200831521,1217539203LL<<20),
+      reale(227963885,2651839699LL<<19),-reale(87452614,163103009LL<<21),
+      -reale(9664164,7186873499LL<<19),reale(9739937,3920029055LL<<20),
+      reale(6101400,4999938359LL<<19),-reale(3588081,0x84422b3e50000LL),
+      reale(69730808036LL,0x96022a9a34351LL),
       // C4[8], coeff of eps^11, polynomial in n of order 18
-      real(0xd525ae2fLL<<20),real(0x3bfe51acd80000LL),real(0x14751dbf38LL<<20),
+      real(3576016431LL<<20),real(32208729499LL<<19),real(10983028711LL<<23),
       real(0x9286be006280000LL),real(0x65e9f47db41LL<<20),
-      reale(50386LL,0x86f8894780000LL),reale(-0x15ca2fLL,0x372198eaLL<<20),
-      reale(0xba91d7LL,0xb80fee1c80000LL),reale(-0x3569975LL,0x71629ed3LL<<20),
-      reale(0x9816bb3LL,0xad60df8180000LL),
-      reale(-0x11995ddaLL,0x3ee5339cLL<<20),
-      reale(0x148a4441LL,0xbf8cd61680000LL),
-      reale(-0xc15425aLL,0xc742cde5LL<<20),
-      reale(-0x304fe0dLL,0x583a627b80000LL),
-      reale(0xc08825fLL,0xb446a44eLL<<20),
-      reale(-0x9ed9454LL,0x60047d5080000LL),
-      reale(0x3c543a5LL,0x9bd83d77LL<<20),reale(-0x7c355eLL,0xc4aad73580000LL),
-      reale(-722972LL,0x59e3624598000LL),
-      reale(0x103c47b0e4LL,0x96022a9a34351LL),
+      reale(50386,4528870031LL<<19),-reale(1428014,1685009291LL<<21),
+      reale(12227031,6176103481LL<<19),-reale(56007028,2392678701LL<<20),
+      reale(159476659,5817614083LL<<19),-reale(295263705,809939737LL<<22),
+      reale(344605761,6427356205LL<<19),-reale(202719833,951923227LL<<20),
+      -reale(50658828,5629491977LL<<19),reale(201884255,1512264231LL<<21),
+      -reale(166564947,5368120671LL<<19),reale(63259557,2614639991LL<<20),
+      -reale(8140125,1990873493LL<<19),-reale(722971,0xa61c9dba68000LL),
+      reale(69730808036LL,0x96022a9a34351LL),
       // C4[8], coeff of eps^10, polynomial in n of order 19
-      real(0x56f7f42LL<<20),real(0x137048c4LL<<20),real(0x4e394236LL<<20),
-      real(0x16d2fe42LL<<24),real(0x81931b98aLL<<20),real(0x3c9fbdb57cLL<<20),
-      real(0x2c4e5dd087eLL<<20),reale(23168LL,0xb63e7e18LL<<20),
-      reale(-700306LL,0xcb5d6a52LL<<20),reale(0x62a65eLL,0x20152f34LL<<20),
-      reale(-0x1ee9970LL,0x93246246LL<<20),reale(0x62872d7LL,0x8a529a1LL<<24),
-      reale(-0xd408826LL,0x68d9eb9aLL<<20),reale(0x136f6f74LL,0xd4d1fecLL<<20),
-      reale(-0x1279ae0fLL,0x5e5da98eLL<<20),
-      reale(0x8f07171LL,0x93046208LL<<20),reale(0x21fb8d1LL,0x44c61762LL<<20),
-      reale(-0x6bdd802LL,0xaf4f1a4LL<<20),reale(0x498b62fLL,0xe141b856LL<<20),
-      reale(-0x1326f72LL,0x32ac37fef0000LL),
-      reale(0x103c47b0e4LL,0x96022a9a34351LL),
+      real(45596577LL<<21),real(81531441LL<<22),real(656187675LL<<21),
+      real(191463201LL<<25),real(17391213765LL<<21),real(65094511967LL<<22),
+      real(0x16272ee843fLL<<21),reale(23168,382193603LL<<23),
+      -reale(700305,441535191LL<<21),reale(6465118,134564813LL<<22),
+      -reale(32414063,913166045LL<<21),reale(103314135,145041825LL<<24),
+      -reale(222332965,1267927603LL<<21),reale(326070132,55789563LL<<22),
+      -reale(309964302,1355885369LL<<21),reale(149975409,308317249LL<<23),
+      reale(35633361,576916401LL<<21),-reale(113104897,1027785623LL<<22),
+      reale(77116975,1889590315LL<<21),-reale(20082545,0xcd53c80110000LL),
+      reale(69730808036LL,0x96022a9a34351LL),
       // C4[8], coeff of eps^9, polynomial in n of order 20
-      real(0x224b92LL<<20),real(0x69949980000LL),real(0x161630dLL<<20),
-      real(0x51a8b0880000LL),real(0x154c89a8LL<<20),real(0x677d728780000LL),
-      real(0x2660ce143LL<<20),real(0x12dc092af680000LL),
-      real(0xe8fe920bbeLL<<20),reale(8102LL,0xc40d4c3580000LL),
-      reale(-262913LL,0xa90a5af9LL<<20),reale(0x2833faLL,0xeee5962480000LL),
-      reale(-0xde08adLL,0x51a100d4LL<<20),reale(0x31b7db9LL,0xff2660a380000LL),
-      reale(-0x7bf1a66LL,0x57f83f2fLL<<20),
-      reale(0xdd78d25LL,0x42080b9280000LL),
-      reale(-0x11c8a829LL,0x86d597eaLL<<20),
-      reale(0x100ff41bLL,0xef976ed180000LL),
-      reale(-0x9a71832LL,0xa6f5fce5LL<<20),
-      reale(0x37288a3LL,0xe8f14a4080000LL),
-      reale(-0x8cf5d4LL,0xee5975eb08000LL),
-      reale(0x103c47b0e4LL,0x96022a9a34351LL),
+      real(1123785LL<<21),real(13838643LL<<19),real(23159565LL<<20),
+      real(171251217LL<<19),real(44667189LL<<23),real(3472549135LL<<19),
+      real(10302054723LL<<20),real(162001999341LL<<19),
+      real(500351698399LL<<21),reale(8102,6578411627LL<<19),
+      -reale(262912,1458939143LL<<20),reale(2634746,8016047177LL<<19),
+      -reale(14551212,731365323LL<<22),reale(52133305,8561410375LL<<19),
+      -reale(129964645,2819080401LL<<20),reale(232230181,2215647013LL<<19),
+      -reale(298362920,1016411147LL<<21),reale(269480987,8039357859LL<<19),
+      -reale(161945649,1493828379LL<<20),reale(57837731,7816254593LL<<19),
+      -reale(9237971,9476063903LL<<15),reale(69730808036LL,0x96022a9a34351LL),
       // C4[8], coeff of eps^8, polynomial in n of order 21
-      real(0x8ec3e0000LL),real(0x18af380000LL),real(0x48d1b20000LL),
-      real(0xe74ecc0000LL),real(0x32102a60000LL),real(0xc018f6LL<<20),
-      real(0x342f821a0000LL),real(0x1092e17f40000LL),real(0x67551030e0000LL),
-      real(0x35a73e8f880000LL),real(0x2c0f1d988820000LL),
-      real(0x66a336663d1c0000LL),reale(-57642LL,0xc0a9505760000LL),
-      reale(631918LL,0xdc4e0a7bLL<<20),reale(-0x3b0f28LL,0xfaa1ffcea0000LL),
-      reale(0xeea5b7LL,0xcc8b836440000LL),
-      reale(-0x2ad019aLL,0xf282821de0000LL),
-      reale(0x5a4bd8dLL,0x4657ccfd80000LL),
-      reale(-0x8ca7609LL,0xa1324f7520000LL),
-      reale(0x9c48325LL,0xbeaba7b6c0000LL),
-      reale(-0x69b85e5LL,0x2c31870460000LL),
-      reale(0x1ed5c62LL,0xbdc6e34964000LL),
-      reale(0x103c47b0e4LL,0x96022a9a34351LL),
+      real(292383LL<<17),real(202215LL<<19),real(2386137LL<<17),
+      real(3789747LL<<18),real(26247507LL<<17),real(6294651LL<<21),
+      real(437764365LL<<17),real(1112245757LL<<18),real(0x67551030e0000LL),
+      real(28804895217LL<<19),real(0x2c0f1d988820000LL),
+      real(0x66a336663d1c0000LL),-reale(57641,8501165381LL<<17),
+      reale(631918,3696102011LL<<20),-reale(3870503,720372107LL<<17),
+      reale(15639991,0xcc8b836440000LL),-reale(44892569,0xd7d7de220000LL),
+      reale(94682509,2360318459LL<<19),-reale(147486216,0x5ecdb08ae0000LL),
+      reale(163873573,0xbeaba7b6c0000LL),-reale(110855652,0xd3ce78fba0000LL),
+      reale(32332898,0xbdc6e34964000LL),reale(69730808036LL,0x96022a9a34351LL),
       // C4[9], coeff of eps^29, polynomial in n of order 0
-      real(0x41cf0000LL),real(0x3d2e2985830503LL),
+      real(16847<<16),real(0x3d2e2985830503LL),
       // C4[9], coeff of eps^28, polynomial in n of order 1
-      -real(0x195c48LL<<20),real(0x687f5c0000LL),real(0x438da32e1600335LL),
+      -real(207753LL<<23),real(1712087LL<<18),real(0x438da32e1600335LL),
       // C4[9], coeff of eps^27, polynomial in n of order 2
-      -real(0x174d38452LL<<20),-real(0x24810c5LL<<20),-real(0xe4960490000LL),
-      reale(161925LL,0x30e683ffe0741LL),
+      -real(3127493161LL<<21),-real(38277317LL<<20),-real(0xe4960490000LL),
+      reale(161925,0x30e683ffe0741LL),
       // C4[9], coeff of eps^26, polynomial in n of order 3
-      -real(0x8a9317724LL<<20),real(0x6cfa364f8LL<<20),
-      -real(0xa2b1dc5ccLL<<20),real(0x2561f1223e0000LL),
-      reale(0x1419a3LL,0x4f8aa089603a9LL),
+      -real(9299582409LL<<22),real(3656674463LL<<23),-real(10918261107LL<<22),
+      real(80278491423LL<<17),reale(1317283,0x4f8aa089603a9LL),
       // C4[9], coeff of eps^25, polynomial in n of order 4
-      -real(0x2969ddb5824LL<<20),reale(3279LL,0x51285681LL<<20),
-      -real(0x6e93a3242f2LL<<20),-real(0x48275b7b75LL<<20),
-      -real(0x1f18264b9990000LL),reale(0x9a85177LL,0x379b22013c233LL),
+      -real(711479186953LL<<22),reale(3279,1361598081LL<<20),
+      -real(0x3749d192179LL<<21),-real(309897952117LL<<20),
+      -real(0x1f18264b9990000LL),reale(162025847,0x379b22013c233LL),
       // C4[9], coeff of eps^24, polynomial in n of order 5
-      reale(-133857LL,0xe363482LL<<24),reale(223946LL,0xb024018LL<<24),
-      reale(-32029LL,0xe8f5e8eLL<<24),reale(48931LL,0x82bd2cLL<<24),
-      reale(-63934LL,0x28f5d3aLL<<24),reale(12842LL,0x805d8e65LL<<20),
-      reale(0x16553c63bLL,0x96bea2db115fLL),
+      -reale(133856,15001023LL<<25),reale(223946,23087107LL<<27),
+      -reale(32028,12079289LL<<25),reale(48931,2142027LL<<26),
+      -reale(63933,112742755LL<<25),reale(12842,2153614949LL<<20),
+      reale(5994956347LL,0x96bea2db115fLL),
       // C4[9], coeff of eps^23, polynomial in n of order 6
-      reale(-0x5b6187LL,0xe396e5bLL<<20),reale(0x23d859LL,0xe3eefe9c80000LL),
-      reale(-426463LL,0xd6e2edb2LL<<20),reale(0x25c4a6LL,0x1c0aded780000LL),
-      reale(-999560LL,0x32e18b49LL<<20),reale(-83147LL,0x6bd67ec280000LL),
-      reale(-41199LL,0xb0fdbdc348000LL),
-      reale(0x12254110ffLL,0x7a7ae451fe1d3LL),
+      -reale(5988742,4056322469LL<<20),reale(2349145,7648181561LL<<19),
+      -reale(426462,344885543LL<<21),reale(2475174,940948911LL<<19),
+      -reale(999559,3441325239LL<<20),-reale(83146,4971496059LL<<19),
+      -reale(41198,0x4f02423cb8000LL),reale(77934432511LL,0x7a7ae451fe1d3LL),
       // C4[9], coeff of eps^22, polynomial in n of order 7
-      reale(-0x83b396LL,0x827c58feLL<<20),reale(-629493LL,0x68c8b6e4LL<<20),
-      reale(-0x3b1eaeLL,0xc3b760baLL<<20),reale(0x3b015eLL,0xf4ed6bd8LL<<20),
-      reale(-159711LL,0x580c5996LL<<20),reale(0x10c91dLL,0xaa4c4b4cLL<<20),
-      reale(-0x12020cLL,0xba191652LL<<20),reale(201643LL,0x9fcf910730000LL),
-      reale(0x12254110ffLL,0x7a7ae451fe1d3LL),
+      -reale(8631189,1052889985LL<<21),-reale(629492,634245703LL<<22),
+      -reale(3874477,505696163LL<<21),reale(3866974,513650043LL<<23),
+      -reale(159710,1408881461LL<<21),reale(1100061,714281683LL<<22),
+      -reale(1180171,586380503LL<<21),reale(201643,0x9fcf910730000LL),
+      reale(77934432511LL,0x7a7ae451fe1d3LL),
       // C4[9], coeff of eps^21, polynomial in n of order 8
-      reale(341632LL,0xac1a48acLL<<20),reale(0x27a164LL,0x8a0c1f1480000LL),
-      reale(-0x9e43d9LL,0xa4e49531LL<<20),reale(0x1264abLL,0x8ca380d580000LL),
-      reale(-0x1179e5LL,0x9222f2d6LL<<20),reale(0x3ce5afLL,0xb64d248680000LL),
-      reale(-0x105fa4LL,0x302b013bLL<<20),reale(-153112LL,0x183edfc780000LL),
-      reale(-94131LL,0xd7f7d844d8000LL),
-      reale(0x12254110ffLL,0x7a7ae451fe1d3LL),
+      reale(341632,721850923LL<<22),reale(2597220,4632100393LL<<19),
+      -reale(10372056,1528523471LL<<20),reale(1205419,4719051179LL<<19),
+      -reale(1145316,921601685LL<<21),reale(3990959,6117017869LL<<19),
+      -reale(1073059,3486842565LL<<20),-reale(153111,7776387185LL<<19),
+      -reale(94130,0x280827bb28000LL),reale(77934432511LL,0x7a7ae451fe1d3LL),
       // C4[9], coeff of eps^20, polynomial in n of order 9
-      reale(0x39bc21LL,0x20190a0cLL<<20),reale(0x160b633LL,0x7ead70aLL<<24),
-      reale(-0x618904LL,0x846d2bb4LL<<20),reale(-0x1a7196LL,0x7cdd0cb8LL<<20),
-      reale(-0x8687b5LL,0x392a5d1cLL<<20),reale(0x44308eLL,0xebeb665LL<<24),
-      reale(300534LL,0x83fc99c4LL<<20),reale(0x1fd0a3LL,0x978be8e8LL<<20),
-      reale(-0x1a5275LL,0x9321dd2cLL<<20),reale(240877LL,0x8d28f00d60000LL),
-      reale(0x12254110ffLL,0x7a7ae451fe1d3LL),
+      reale(3783713,134627971LL<<22),reale(23115315,66415493LL<<25),
+      -reale(6392067,518305043LL<<22),-reale(1733013,275013225LL<<23),
+      -reale(8816564,833972409LL<<22),reale(4468878,247379557LL<<24),
+      reale(300534,553592433LL<<22),reale(2085027,317816093LL<<23),
+      -reale(1725044,456624309LL<<22),reale(240877,0x8d28f00d60000LL),
+      reale(77934432511LL,0x7a7ae451fe1d3LL),
       // C4[9], coeff of eps^19, polynomial in n of order 10
-      reale(-0x380db6eLL,0xc0617725LL<<20),
-      reale(0x11f5051LL,0xe1e139a280000LL),reale(0xa2fb7bLL,0x8d5913c4LL<<20),
-      reale(0x10295a1LL,0x2144e00580000LL),reale(-0xd9dcf6LL,0x5a8ea4e3LL<<20),
-      reale(-0x20cb95LL,0x10bfa95880000LL),reale(-0x3de568LL,0x9d41a562LL<<20),
-      reale(0x625334LL,0x85894a7b80000LL),reale(-857620LL,0xd337e021LL<<20),
-      reale(-227989LL,0x76ea704e80000LL),reale(-205806LL,0xccbf48c608000LL),
-      reale(0x12254110ffLL,0x7a7ae451fe1d3LL),
+      -reale(58776429,1067354331LL<<20),reale(18829393,7579267909LL<<19),
+      reale(10681211,592856305LL<<22),reale(16946593,1116323851LL<<19),
+      -reale(14277877,2775669533LL<<20),-reale(2149268,8027942223LL<<19),
+      -reale(4056423,828321103LL<<21),reale(6443828,4480734455LL<<19),
+      -reale(857619,751312863LL<<20),-reale(227988,4599783267LL<<19),
+      -reale(205805,0x3340b739f8000LL),reale(77934432511LL,0x7a7ae451fe1d3LL),
       // C4[9], coeff of eps^18, polynomial in n of order 11
-      reale(-0x7f0f45LL,0xe89dc64aLL<<20),reale(-0x213541bLL,0x7c4907e4LL<<20),
-      reale(-0x2c9f976LL,0xbd97966eLL<<20),reale(0x248f184LL,0xa8d301dLL<<24),
-      reale(0x885f47LL,0x6403fdf2LL<<20),reale(0x5124c3LL,0xf65ffebcLL<<20),
-      reale(-0x11870d8LL,0xd03b1416LL<<20),reale(0x2b66fbLL,0x614fde8LL<<20),
-      reale(593018LL,0xc5d1701aLL<<20),reale(0x41c725LL,0x12317e94LL<<20),
-      reale(-0x278a33LL,0x6ecf293eLL<<20),reale(276451LL,0x9f1a0fb950000LL),
-      reale(0x12254110ffLL,0x7a7ae451fe1d3LL),
+      -reale(8326980,196156635LL<<21),-reale(34821146,552451591LL<<22),
+      -reale(46791029,557069513LL<<21),reale(38334852,177025053LL<<24),
+      reale(8937287,838991609LL<<21),reale(5317827,1033371567LL<<22),
+      -reale(18378967,400717301LL<<21),reale(2844411,12754877LL<<23),
+      reale(593018,1659418637LL<<21),reale(4310821,76308389LL<<22),
+      -reale(2591282,1217948513LL<<21),reale(276451,0x9f1a0fb950000LL),
+      reale(77934432511LL,0x7a7ae451fe1d3LL),
       // C4[9], coeff of eps^17, polynomial in n of order 12
-      reale(-0xad9f8dbLL,0xdeb76b02LL<<20),
-      reale(0xeb4d0e7LL,0xd90ba4f280000LL),
-      reale(-0x3ac15abLL,0x2613d6e7LL<<20),
-      reale(-0x2b3d719LL,0xe84722d380000LL),
-      reale(-0x13953eeLL,0xdfd6afacLL<<20),reale(0x318b6d0LL,0x74542e480000LL),
-      reale(-0x499a3cLL,0xdd5465f1LL<<20),reale(-0x55d316LL,0x60bebc580000LL),
-      reale(-0xd268bdLL,0x8a02aa56LL<<20),reale(0x93841fLL,0xc1fdfc1680000LL),
-      reale(215496LL,0x532f1d7bLL<<20),reale(-184970LL,0x3b65ba7780000LL),
-      reale(-459827LL,0x50f841a2d8000LL),
-      reale(0x12254110ffLL,0x7a7ae451fe1d3LL),
+      -reale(182057178,279202431LL<<21),reale(246730983,7282837989LL<<19),
+      -reale(61609386,3656132889LL<<20),-reale(45340440,795982425LL<<19),
+      -reale(20534253,134894613LL<<22),reale(51951312,243959241LL<<19),
+      -reale(4823611,581671439LL<<20),-reale(5624597,8387045493LL<<19),
+      -reale(13789372,989768405LL<<21),reale(9667615,6509295661LL<<19),
+      reale(215496,1395596667LL<<20),-reale(184969,6596889361LL<<19),
+      -reale(459826,0xaf07be5d28000LL),reale(77934432511LL,0x7a7ae451fe1d3LL),
       // C4[9], coeff of eps^16, polynomial in n of order 13
-      reale(0x12e233e4LL,0xf9f1f348LL<<20),reale(-0xb1ebd27LL,0x86b70d2LL<<24),
-      reale(-0x692a660LL,0x4c7c978LL<<20),reale(0xfad6a73LL,0x4f304d7LL<<24),
-      reale(-0x7cd723eLL,0xce08e28LL<<20),reale(-0x1cfd5e5LL,0xb2eb80cLL<<24),
-      reale(0xd0ca45LL,0x3acd8a58LL<<20),reale(0x2ded6f2LL,0x86f9101LL<<24),
-      reale(-0x1936889LL,0x379c0708LL<<20),reale(-0x566835LL,0x871646LL<<24),
-      reale(-0x215aaeLL,0x58fd4d38LL<<20),reale(0x92ee72LL,0xa8fae6bLL<<24),
-      reale(-0x3c4239LL,0x14e6a5e8LL<<20),reale(276643LL,0x362a460940000LL),
-      reale(0x12254110ffLL,0x7a7ae451fe1d3LL),
+      reale(316814308,524172905LL<<23),-reale(186563878,63588247LL<<25),
+      -reale(110274143,526845649LL<<23),reale(263023219,83035351LL<<24),
+      -reale(130904637,509865531LL<<23),-reale(30397924,20206077LL<<26),
+      reale(13683269,123318603LL<<23),reale(48158450,141529345LL<<24),
+      -reale(26437768,420249375LL<<23),-reale(5662772,129791197LL<<25),
+      -reale(2185901,350246489LL<<23),reale(9629298,177188459LL<<24),
+      -reale(3949112,493038403LL<<23),reale(276643,3634960421LL<<18),
+      reale(77934432511LL,0x7a7ae451fe1d3LL),
       // C4[9], coeff of eps^15, polynomial in n of order 14
-      reale(0x4b1cd3aLL,0x15c18781LL<<20),reale(-0xc02e239LL,0x325de4f80000LL),
-      reale(0x12aaf616LL,0xbf0cdbeaLL<<20),
-      reale(-0xf10b02bLL,0x5a0a145480000LL),
-      reale(-0xc94803LL,0x7ecf7993LL<<20),reale(0xe685891LL,0xe2ae572980000LL),
-      reale(-0xc079231LL,0x9f7a819cLL<<20),
-      reale(0x1450b43LL,0x9913ddee80000LL),reale(0x2355920LL,0x4acee525LL<<20),
-      reale(0x13a4d35LL,0x131b07c380000LL),
-      reale(-0x25bb844LL,0x688fd54eLL<<20),reale(0x92f150LL,0xd2078bc880000LL),
-      reale(0x332941LL,0x6f4d3337LL<<20),reale(651457LL,0xd471a91d80000LL),
-      reale(-0x10fffdLL,0x8b8abaacb8000LL),
-      reale(0x12254110ffLL,0x7a7ae451fe1d3LL),
+      reale(78761274,365004673LL<<20),-reale(201515576,8484307809LL<<19),
+      reale(313194006,1602645493LL<<21),-reale(252751914,5568714583LL<<19),
+      -reale(13191170,2167441005LL<<20),reale(241719441,7606152787LL<<19),
+      -reale(201822768,404840345LL<<22),reale(21302083,5136432093LL<<19),
+      reale(37050656,1255073061LL<<20),reale(20598069,641077127LL<<19),
+      -reale(39565379,1270355289LL<<21),reale(9630032,7047419793LL<<19),
+      reale(3352897,1867330359LL<<20),reale(651457,7128437307LL<<19),
+      -reale(1114108,0x7475455348000LL),reale(77934432511LL,0x7a7ae451fe1d3LL),
       // C4[9], coeff of eps^14, polynomial in n of order 15
-      reale(0x16f1c4LL,0xd2212eaaLL<<20),reale(-0xc58993LL,0x92e4dc3cLL<<20),
-      reale(0x385f0ffLL,0xee10705eLL<<20),reale(-0x9dad9c6LL,0x2fe5a098LL<<20),
-      reale(0x116b5b58LL,0x9c464672LL<<20),
-      reale(-0x12059efdLL,0xecd8db74LL<<20),
-      reale(0x60a2bdbLL,0xc1c4d526LL<<20),reale(0xa06a064LL,0xf509b91LL<<24),
-      reale(-0xea175dfLL,0x358cc0baLL<<20),reale(0x65d394dLL,0x892ae5acLL<<20),
-      reale(0x133fcd5LL,0xb4b02d6eLL<<20),reale(-0xf1b930LL,0xc8fd0d88LL<<20),
-      reale(-0x1737347LL,0xdc7fbf82LL<<20),reale(0x159253eLL,0x99455ce4LL<<20),
-      reale(-0x57c159LL,0x2f3d9b36LL<<20),reale(119914LL,0x778fad9290000LL),
-      reale(0x12254110ffLL,0x7a7ae451fe1d3LL),
+      reale(1503684,1762694997LL<<21),-reale(12945810,457623793LL<<22),
+      reale(59109631,1997027375LL<<21),-reale(165337541,436423661LL<<23),
+      reale(292248408,1310925625LL<<21),-reale(302358268,80333091LL<<22),
+      reale(101329883,1625451155LL<<21),reale(168206436,256940945LL<<24),
+      -reale(245462494,1698275235LL<<21),reale(106772813,575322475LL<<22),
+      reale(20184277,1515722423LL<<21),-reale(15841583,115367503LL<<23),
+      -reale(24343366,297803839LL<<21),reale(22619454,642864953LL<<22),
+      -reale(5751128,1751200357LL<<21),reale(119914,0x778fad9290000LL),
+      reale(77934432511LL,0x7a7ae451fe1d3LL),
       // C4[9], coeff of eps^13, polynomial in n of order 16
-      -real(0x399266be8d8LL<<20),reale(-30245LL,0x1f85840780000LL),
-      reale(913230LL,0x8c812ed3LL<<20),reale(-0x7f81b0LL,0x508faab680000LL),
-      reale(0x2727214LL,0x60c0bdeLL<<20),reale(-0x781e515LL,0x65819f580000LL),
-      reale(0xf11254cLL,0xec1a46a9LL<<20),
-      reale(-0x1340c342LL,0x23b0142480000LL),
-      reale(0xccb9fe8LL,0xaf4c9794LL<<20),reale(0x24da283LL,0x549703a380000LL),
-      reale(-0xd2d2cc0LL,0x5efaa6ffLL<<20),
-      reale(0xb561781LL,0xe7148ad280000LL),reale(-0x33b13ceLL,0xf08dd4aLL<<20),
-      reale(-0xf32c8bLL,0x75bb941180000LL),reale(0x6bde6eLL,0x670632d5LL<<20),
-      reale(0x62d0c8LL,0xeb9461c080000LL),reale(-0x317e9eLL,0x9a2850efa8000LL),
-      reale(0x12254110ffLL,0x7a7ae451fe1d3LL),
+      -real(494538685723LL<<23),-reale(30244,7532247025LL<<19),
+      reale(913230,2357276371LL<<20),-reale(8356271,5886749331LL<<19),
+      reale(41054740,50726383LL<<21),-reale(125953300,8377060373LL<<19),
+      reale(252781900,3961145001LL<<20),-reale(323011393,7392450487LL<<19),
+      reale(214671336,735258085LL<<22),reale(38642307,2838366023LL<<19),
+      -reale(221064383,2701482241LL<<20),reale(190191489,7753766309LL<<19),
+      -reale(54203341,2021364059LL<<21),-reale(15936650,4639479773LL<<19),
+      reale(7069294,1728459477LL<<20),reale(6475976,7904740225LL<<19),
+      -reale(3243677,0x65d7af1058000LL),reale(77934432511LL,0x7a7ae451fe1d3LL),
       // C4[9], coeff of eps^12, polynomial in n of order 17
-      -real(0x49a1015c4LL<<20),-real(0x24465af3cLL<<24),
-      -real(0x1bf34980cbcLL<<20),reale(-15429LL,0x36b38ef8LL<<20),
-      reale(492912LL,0x78bf270cLL<<20),reale(-0x497a24LL,0x5671033LL<<24),
-      reale(0x1863880LL,0xf60b314LL<<20),reale(-0x525f99dLL,0xe1a84668LL<<20),
-      reale(0xbb9caeaLL,0xcc39c4dcLL<<20),reale(-0x1216a8ebLL,0x37a6362LL<<24),
-      reale(0x11a49c5fLL,0xf95d89e4LL<<20),
-      reale(-0x76c584cLL,0x1f92afd8LL<<20),
-      reale(-0x5c748bcLL,0x72cd2facLL<<20),reale(0xb9c37f8LL,0xcf01911LL<<24),
-      reale(-0x852804aLL,0x8c8be3b4LL<<20),reale(0x2dd1b5fLL,0xcfe3b748LL<<20),
-      reale(-0x4d8bb7LL,0xbe26d37cLL<<20),reale(-749749LL,0x9f9678dfe0000LL),
-      reale(0x12254110ffLL,0x7a7ae451fe1d3LL),
+      -real(4941153649LL<<22),-real(2434362319LL<<26),
+      -real(480183190319LL<<22),-reale(15428,422153761LL<<23),
+      reale(492912,506448323LL<<22),-reale(4815395,177795021LL<<24),
+      reale(25573504,64498885LL<<22),-reale(86374812,63633203LL<<23),
+      reale(196725482,856584503LL<<22),-reale(303474922,105041487LL<<25),
+      reale(296000607,1045914233LL<<22),-reale(124541003,470657541LL<<23),
+      -reale(96946363,592229397LL<<22),reale(194787320,217061649LL<<24),
+      -reale(139624521,484247315LL<<22),reale(48044895,435975913LL<<23),
+      -reale(5082038,276187937LL<<22),-reale(749748,0x6069872020000LL),
+      reale(77934432511LL,0x7a7ae451fe1d3LL),
       // C4[9], coeff of eps^11, polynomial in n of order 18
-      -real(0xdc9b5f1LL<<20),-real(0x461438ca80000LL),-real(0x1b32457c8LL<<20),
-      -real(0xdfda7610580000LL),-real(0xb4fb8c3a9fLL<<20),
-      reale(-6591LL,0x8d2c3ccf80000LL),reale(223861LL,0x20c31aaLL<<20),
-      reale(-0x23cfe5LL,0x9404a6d480000LL),reale(0xcea485LL,0xe6baed33LL<<20),
-      reale(-0x30392e7LL,0x1c35eb2980000LL),
-      reale(0x7cadd8eLL,0xb6b8581cLL<<20),
-      reale(-0xe4b10bcLL,0x19efcfee80000LL),
-      reale(0x12628d94LL,0xca5d2285LL<<20),
-      reale(-0xf679579LL,0x8d6c834380000LL),
-      reale(0x5f1732fLL,0x1b1e3c8eLL<<20),reale(0x33d2151LL,0x9af24b4880000LL),
-      reale(-0x6513088LL,0xf320c657LL<<20),
-      reale(0x4025aa4LL,0x12b2361d80000LL),
-      reale(-0x105153aLL,0xfa056b19b8000LL),
-      reale(0x12254110ffLL,0x7a7ae451fe1d3LL),
+      -real(231323121LL<<20),-real(2351460757LL<<19),-real(912558841LL<<23),
+      -real(0xdfda7610580000LL),-real(777314384543LL<<20),
+      -reale(6590,3852961377LL<<19),reale(223861,17176789LL<<21),
+      -reale(2346980,3623268951LL<<19),reale(13542533,3871010099LL<<20),
+      -reale(50565862,7643343277LL<<19),reale(130735502,766383623LL<<22),
+      -reale(239800507,7719641123LL<<19),reale(308448660,3395101317LL<<20),
+      -reale(258446712,3844536697LL<<19),reale(99709743,227483207LL<<21),
+      reale(54337873,5199140497LL<<19),-reale(105984135,215955881LL<<20),
+      reale(67263140,627338299LL<<19),-reale(17110329,0x5fa94e648000LL),
+      reale(77934432511LL,0x7a7ae451fe1d3LL),
       // C4[9], coeff of eps^10, polynomial in n of order 19
-      -real(0x1070a6LL<<20),-real(0x41a48cLL<<20),-real(0x128e0c2LL<<20),
-      -real(0x6214a6LL<<24),-real(0x27bd427eLL<<20),-real(0x15709aa34LL<<20),
-      -real(0x124688a69aLL<<20),-real(0x2c21e34ecc8LL<<20),
-      reale(25645LL,0xc7a2622aLL<<20),reale(-290250LL,0x8f434524LL<<20),
-      reale(0x1becd4LL,0x97e8c70eLL<<20),reale(-0x73c9baLL,0xa17642dLL<<24),
-      reale(0x1540010LL,0x9cff752LL<<20),reale(-0x2dcd0eaLL,0x98d4e37cLL<<20),
-      reale(0x496627cLL,0x9b7ce236LL<<20),reale(-0x56e78b5LL,0xb265fe68LL<<20),
-      reale(0x49e1f30LL,0xb044f6faLL<<20),reale(-0x2a7e0bbLL,0xc12ead4LL<<20),
-      reale(0xeb57a3LL,0x2d0d24deLL<<20),reale(-0x24c5b2LL,0x80f5f23d50000LL),
-      reale(0x60c6b05aaLL,0x7e28f6c5ff5f1LL),
+      -real(538707LL<<21),-real(1075491LL<<22),-real(9728097LL<<21),
+      -real(3213907LL<<25),-real(333357375LL<<21),-real(1438804621LL<<22),
+      -real(39246385997LL<<21),-real(379094211993LL<<23),
+      reale(25645,1674653973LL<<21),-reale(290249,472854199LL<<22),
+      reale(1830100,1274307463LL<<21),-reale(7588281,99130323LL<<24),
+      reale(22282256,82312105LL<<21),-reale(48025833,432719649LL<<22),
+      reale(76964476,1304326427LL<<21),-reale(91125940,162742323LL<<23),
+      reale(77471536,1478654845LL<<21),-reale(44556474,1023100235LL<<22),
+      reale(15423395,377918063LL<<21),-reale(2409905,0x7f0a0dc2b0000LL),
+      reale(25978144170LL,0x7e28f6c5ff5f1LL),
       // C4[9], coeff of eps^9, polynomial in n of order 20
-      -real(33150LL<<20),-real(0x1b96a80000LL),-real(421083LL<<20),
-      -real(0x1a9b6380000LL),-real(0x7d3598LL<<20),-real(0x2b3428c80000LL),
-      -real(0x125c9155LL<<20),-real(0xa7172a8580000LL),
-      -real(0x97062b5b2LL<<20),-real(0x1855be7c6ee80000LL),
-      reale(15220LL,0x65c177b1LL<<20),reale(-187211LL,0x1c678c9880000LL),
-      reale(0x13ce4bLL,0x7f543134LL<<20),reale(-0x5b9a1eLL,0xd31a9c6f80000LL),
-      reale(0x131570bLL,0xeafca137LL<<20),
-      reale(-0x2fb599eLL,0x34886cf680000LL),
-      reale(0x5b03caeLL,0xfe3eb21aLL<<20),reale(-0x83f8b31LL,0xf584a8d80000LL),
-      reale(0x8bbc08eLL,0x2bfcde3dLL<<20),
-      reale(-0x5bee3bcLL,0x266dd99480000LL),
-      reale(0x1a6e179LL,0x34f39e3ee8000LL),
-      reale(0x12254110ffLL,0x7a7ae451fe1d3LL),
+      -real(16575LL<<21),-real(226005LL<<19),-real(421083LL<<20),
+      -real(3487431LL<<19),-real(1025715LL<<23),-real(90604825LL<<19),
+      -real(308056405LL<<20),-real(5606626571LL<<19),-real(20270111449LL<<21),
+      -real(0x30ab7cf8dddLL<<19),reale(15220,1707177905LL<<20),
+      -reale(187210,7636838095LL<<19),reale(1297995,534056013LL<<22),
+      -reale(6003229,1506461473LL<<19),reale(20010763,3942424887LL<<20),
+      -reale(50026909,6827222547LL<<19),reale(95435950,2132760845LL<<21),
+      -reale(138382128,8075045605LL<<19),reale(146522254,737992253LL<<20),
+      -reale(96396219,7300467927LL<<19),reale(27713913,0x34f39e3ee8000LL),
+      reale(77934432511LL,0x7a7ae451fe1d3LL),
       // C4[10], coeff of eps^29, polynomial in n of order 0
-      real(0x1b7580000LL),real(0x168a4531304537LL),
+      real(14059LL<<19),real(0x168a4531304537LL),
       // C4[10], coeff of eps^28, polynomial in n of order 1
-      -real(0x3d4bdcLL<<20),-real(0x19bc9880000LL),
-      reale(3807LL,0xdf0925caacfb9LL),
+      -real(1004279LL<<22),-real(3373361LL<<19),reale(3807,0xdf0925caacfb9LL),
       // C4[10], coeff of eps^27, polynomial in n of order 2
-      real(0x4af0b8bLL<<24),-real(0x656d09e8LL<<20),real(0x1509670680000LL),
-      reale(59656LL,0xa639fabc960fdLL),
+      real(78580619LL<<24),-real(212705597LL<<23),real(705875469LL<<19),
+      reale(59656,0xa639fabc960fdLL),
       // C4[10], coeff of eps^26, polynomial in n of order 3
-      real(0x1b00e3838d2LL<<20),-real(0xbe74a11c34LL<<20),
-      -real(0xd93dbb0baLL<<20),-real(0x66c4e2e4040000LL),
-      reale(0x1604813LL,0x49a60b16d9e77LL),
+      real(927832218729LL<<21),-real(204500125453LL<<22),
+      -real(29157611613LL<<21),-real(0x66c4e2e4040000LL),
+      reale(23087123,0x49a60b16d9e77LL),
       // C4[10], coeff of eps^25, polynomial in n of order 4
-      real(0x3079591638LL<<24),-real(0x393657246LL<<24),
-      real(0xc9608c29cLL<<24),-real(0xe7b0dee42LL<<24),
-      real(0x29d42cfe52LL<<20),reale(0x1865db4LL,0x820b055e82c23LL),
+      real(26024288967LL<<27),-real(7678900515LL<<25),real(13514191015LL<<26),
+      -real(31097026337LL<<25),real(89826688809LL<<21),
+      reale(25583028,0x820b055e82c23LL),
       // C4[10], coeff of eps^24, polynomial in n of order 5
-      reale(0x1446d7LL,0x787f059LL<<24),reale(-550963LL,0xcb73f54LL<<24),
-      reale(0x259c43LL,0x77b42cfLL<<24),reale(-784467LL,0xcf1fa2aLL<<24),
-      reale(-93185LL,0xbea57c5LL<<24),reale(-52199LL,0x7220a476LL<<20),
-      reale(0x140e3a711aLL,0x5ef39e09c8055LL),
+      reale(1328855,126349401LL<<24),-reale(550962,13774891LL<<26),
+      reale(2464835,125518543LL<<24),-reale(784466,25625323LL<<25),
+      -reale(93184,68528187LL<<24),-reale(52198,1190112709LL<<21),
+      reale(86138056986LL,0x5ef39e09c8055LL),
       // C4[10], coeff of eps^23, polynomial in n of order 6
-      reale(-0x1101f0LL,0x977496cLL<<24),reale(-0x45a30bLL,0x9957d2aLL<<24),
-      reale(0x305c71LL,0x2a8d48LL<<24),reale(68182LL,0xb14c8e6LL<<24),
-      reale(0x11e473LL,0xae8af24LL<<24),reale(-0x109dddLL,0xe616b22LL<<24),
-      reale(166307LL,0x5802f8eLL<<20),reale(0x140e3a711aLL,0x5ef39e09c8055LL),
+      -reale(1114607,27405733LL<<26),-reale(4563722,53821803LL<<25),
+      reale(3169393,348585LL<<27),reale(68182,92955763LL<<25),
+      reale(1172595,45755337LL<<26),-reale(1088988,13585007LL<<25),
+      reale(166307,46143431LL<<21),reale(86138056986LL,0x5ef39e09c8055LL),
       // C4[10], coeff of eps^22, polynomial in n of order 7
-      reale(0x539f56LL,0x1e0c5ff9LL<<20),reale(-0x8dcd6bLL,0xed7bcf5aLL<<20),
-      reale(-197248LL,0x48ddbe7bLL<<20),reale(-0x19170fLL,0x21a4d53cLL<<20),
-      reale(0x3a26f5LL,0xc3eeee7dLL<<20),reale(-747955LL,0xd969e11eLL<<20),
-      reale(-145849LL,0x156d88ffLL<<20),reale(-106663LL,0x47291a5560000LL),
-      reale(0x140e3a711aLL,0x5ef39e09c8055LL),
+      reale(5480278,504127481LL<<20),-reale(9293162,155326547LL<<21),
+      -reale(197247,3072475525LL<<20),-reale(1644302,932629169LL<<22),
+      reale(3811061,3287215741LL<<20),-reale(747954,323686257LL<<21),
+      -reale(145848,3935467265LL<<20),-reale(106662,0xb8d6e5aaa0000LL),
+      reale(86138056986LL,0x5ef39e09c8055LL),
       // C4[10], coeff of eps^21, polynomial in n of order 8
-      reale(0x15bd9d1LL,0x2c03fd2LL<<24),reale(-927291LL,0xd50c865cLL<<20),
-      reale(-369607LL,0xdc6fc0d8LL<<20),reale(-0x8df7bdLL,0x7c2c6fd4LL<<20),
-      reale(0x2e5691LL,0x43d2269LL<<24),reale(396000LL,0xd623804cLL<<20),
-      reale(0x214792LL,0xe725f848LL<<20),reale(-0x17beddLL,0xa31a41c4LL<<20),
-      reale(192540LL,0x32adf107c0000LL),
-      reale(0x140e3a711aLL,0x5ef39e09c8055LL),
+      reale(22796753,23076841LL<<25),-reale(927290,180149865LL<<22),
+      -reale(369606,74581989LL<<23),-reale(9303996,552920075LL<<22),
+      reale(3036817,71115369LL<<24),reale(396000,898162707LL<<22),
+      reale(2181010,484753161LL<<23),-reale(1556188,389640079LL<<22),
+      reale(192540,3401040927LL<<18),reale(86138056986LL,0x5ef39e09c8055LL),
       // C4[10], coeff of eps^20, polynomial in n of order 9
-      reale(862955LL,0x9702fddeLL<<20),reale(0x6b3cedLL,0x5b90967LL<<24),
-      reale(0x13ccfdeLL,0xe66b2502LL<<20),reale(-0x91dd71LL,0x3f5d9d4LL<<20),
-      reale(-0x2ec390LL,0x83ef7f26LL<<20),reale(-0x4e4416LL,0xf4b18338LL<<20),
-      reale(0x57e77dLL,0x987e424aLL<<20),reale(-394464LL,0xc6a8309cLL<<20),
-      reale(-178787LL,0x1860846eLL<<20),reale(-217081LL,0x7f14904c40000LL),
-      reale(0x140e3a711aLL,0x5ef39e09c8055LL),
+      reale(862955,1266777839LL<<21),reale(7027949,96012647LL<<24),
+      reale(20762590,1932890753LL<<21),-reale(9559408,1057130891LL<<22),
+      -reale(3064719,1040728173LL<<21),-reale(5129237,23711641LL<<23),
+      reale(5760893,1279205669LL<<21),-reale(394463,240514009LL<<22),
+      -reale(178786,1942994377LL<<21),-reale(217080,8651652815LL<<18),
+      reale(86138056986LL,0x5ef39e09c8055LL),
       // C4[10], coeff of eps^19, polynomial in n of order 10
-      reale(-0xa68549LL,0x206554c8LL<<20),reale(-0x36b3021LL,0xdeb9bbd4LL<<20),
-      reale(0x14a166eLL,0x2246fcaLL<<24),reale(0xbc7d66LL,0xfe843b6cLL<<20),
-      reale(0xa0ef18LL,0x5e155c78LL<<20),reale(-0xfb67dcLL,0xb33b7c04LL<<20),
-      reale(466396LL,0xd22dc65LL<<24),reale(183297LL,0xd1040f9cLL<<20),
-      reale(0x423943LL,0xee88c28LL<<20),reale(-0x229698LL,0x88900834LL<<20),
-      reale(210337LL,0xe1ea7a84c0000LL),
-      reale(0x140e3a711aLL,0x5ef39e09c8055LL),
+      -reale(10913096,468931943LL<<23),-reale(57356320,139563275LL<<22),
+      reale(21632622,17971173LL<<25),reale(12352870,1067519707LL<<22),
+      reale(10546968,197307279LL<<23),-reale(16476123,321986815LL<<22),
+      reale(466396,220388453LL<<24),reale(183297,876676071LL<<22),
+      reale(4340035,31265157LL<<23),-reale(2266775,500956659LL<<22),
+      reale(210337,0xe1ea7a84c0000LL),reale(86138056986LL,0x5ef39e09c8055LL),
       // C4[10], coeff of eps^18, polynomial in n of order 11
-      reale(0xaebb9bbLL,0x9a6909c3LL<<20),reale(0x368691LL,0xe2daadfaLL<<20),
-      reale(-0x24a74bfLL,0xd8cbe9f1LL<<20),
-      reale(-0x260b79cLL,0x3f5d06c8LL<<20),reale(0x28b368cLL,0x39ae469fLL<<20),
-      reale(0x41805eLL,0xcbfe3396LL<<20),reale(-0x2a9a68LL,0xd0516ecdLL<<20),
-      reale(-0xe154f3LL,0x4df58f64LL<<20),reale(0x758c79LL,0x4389217bLL<<20),
-      reale(747527LL,0x4c07d532LL<<20),reale(-45503LL,0x232b6da9LL<<20),
-      reale(-458873LL,0x3de2caada0000LL),
-      reale(0x140e3a711aLL,0x5ef39e09c8055LL),
+      reale(183220667,2590575043LL<<20),reale(3573393,1902991101LL<<21),
+      -reale(38433982,657724943LL<<20),-reale(39892891,403988263LL<<23),
+      reale(42677900,967722655LL<<20),reale(4292702,1711217099LL<<21),
+      -reale(2792039,799969587LL<<20),-reale(14767346,746757159LL<<22),
+      reale(7703673,1133060475LL<<20),reale(747527,637790873LL<<21),
+      -reale(45502,3704918615LL<<20),-reale(458872,0xc21d355260000LL),
+      reale(86138056986LL,0x5ef39e09c8055LL),
       // C4[10], coeff of eps^17, polynomial in n of order 12
-      reale(-0x3aeb36bLL,0xa247ef6LL<<24),reale(-0xbb01e73LL,0x45608dd8LL<<20),
-      reale(0xdd43f7dLL,0xb33886dLL<<24),reale(-0x38b865fLL,0x705e0ac8LL<<20),
-      reale(-0x2c2f6d1LL,0x10312a4LL<<24),reale(-0x5301a0LL,0xb7f985b8LL<<20),
-      reale(0x2f53ff0LL,0x61c43dbLL<<24),reale(-0xfeab81LL,0xd03e2a8LL<<20),
-      reale(-0x703a42LL,0xd68c252LL<<24),reale(-0x3982ddLL,0x512f0598LL<<20),
-      reale(0x8b8c76LL,0xccf9449LL<<24),reale(-0x326f67LL,0x4ecfd288LL<<20),
-      reale(189374LL,0xbae6241b80000LL),
-      reale(0x140e3a711aLL,0x5ef39e09c8055LL),
+      -reale(61780842,49135749LL<<25),-reale(196091506,391376453LL<<23),
+      reale(232013693,187926637LL<<24),-reale(59475550,301219495LL<<23),
+      -reale(46331600,62864215LL<<26),-reale(5439903,151048009LL<<23),
+      reale(49627120,102515675LL<<24),-reale(16690048,509576107LL<<23),
+      -reale(7354945,21733079LL<<25),-reale(3769052,366616397LL<<23),
+      reale(9145462,214930505LL<<24),-reale(3305318,371590575LL<<23),
+      reale(189374,6271289399LL<<19),reale(86138056986LL,0x5ef39e09c8055LL),
       // C4[10], coeff of eps^16, polynomial in n of order 13
-      reale(-0xeb82d91LL,0x7c357414LL<<20),reale(0x119dd076LL,0x1c583fbLL<<24),
-      reale(-0x90ee930LL,0x617b994cLL<<20),
-      reale(-0x6d1d35fLL,0x36379468LL<<20),reale(0xed625caLL,0x7550e084LL<<20),
-      reale(-0x85d2565LL,0x4237b52LL<<24),reale(-0xf0718aLL,0xb8ad3dbcLL<<20),
-      reale(0x1c0a2f3LL,0xaf8e45d8LL<<20),reale(0x1c5921dLL,0x94fe4f4LL<<20),
-      reale(-0x21517f9LL,0xfdaaea9LL<<24),reale(0x50bbf6LL,0x7344ca2cLL<<20),
-      reale(0x34139cLL,0x80d8c748LL<<20),reale(939828LL,0x497a2164LL<<20),
-      reale(-0x102689LL,0xbc8f6ea380000LL),
-      reale(0x140e3a711aLL,0x5ef39e09c8055LL),
+      -reale(246951312,552772347LL<<22),reale(295555190,29721595LL<<24),
+      -reale(151972143,664869293LL<<22),-reale(114414430,423169395LL<<23),
+      reale(248915402,492058657LL<<22),-reale(140322148,99500631LL<<25),
+      -reale(15757705,299151505LL<<22),reale(29401843,368167099LL<<23),
+      reale(29725213,39057725LL<<22),-reale(34936824,2445655LL<<24),
+      reale(5290998,483472011LL<<22),reale(3412892,270211305LL<<23),
+      reale(939828,308185177LL<<22),-reale(1058440,2262901433LL<<19),
+      reale(86138056986LL,0x5ef39e09c8055LL),
       // C4[10], coeff of eps^15, polynomial in n of order 14
-      reale(-0x1be2222LL,0xeb160afLL<<24),reale(0x5c1f497LL,0x28ed0368LL<<20),
-      reale(-0xc8e506fLL,0x70c6dd6LL<<24),reale(0x11bed7d6LL,0x7e237158LL<<20),
-      reale(-0xde12868LL,0xffaed7dLL<<24),reale(779198LL,0xde54d948LL<<20),
-      reale(0xc8cfa6aLL,0xbb351e4LL<<24),reale(-0xc87dffcLL,0xef01df38LL<<20),
-      reale(0x39a2d53LL,0x8c5ad4bLL<<24),reale(0x1d5d416LL,0x2d8a2728LL<<20),
-      reale(-0x7f4692LL,0xcba91f2LL<<24),reale(-0x18b11d6LL,0xb99e5518LL<<20),
-      reale(0x12dae20LL,0x719f219LL<<24),reale(-0x444bceLL,0x59e20d08LL<<20),
-      reale(24304LL,0x9251c55380000LL),reale(0x140e3a711aLL,0x5ef39e09c8055LL),
+      -reale(29237793,21929809LL<<24),reale(96597143,85827693LL<<23),
+      -reale(210653294,75090197LL<<25),reale(297719766,264531499LL<<23),
+      -reale(232859751,332419LL<<24),reale(779198,466262825LL<<23),
+      reale(210565738,49075321LL<<26),-reale(210231291,35636249LL<<23),
+      reale(60435795,147172683LL<<24),reale(30790678,95503589LL<<23),
+      -reale(8341137,27440903LL<<25),-reale(25891285,147600733LL<<23),
+      reale(19770912,119140889LL<<24),-reale(4475853,348372575LL<<23),
+      reale(24304,4909664935LL<<19),reale(86138056986LL,0x5ef39e09c8055LL),
       // C4[10], coeff of eps^14, polynomial in n of order 15
-      reale(-326981LL,0xa8a1d443LL<<20),reale(0x339162LL,0xbabcd556LL<<20),
-      reale(-0x1225effLL,0xf27e7ca9LL<<20),reale(0x412635bLL,0xe04a11dcLL<<20),
-      reale(-0x9e278baLL,0x4b2c8d8fLL<<20),
-      reale(0x104e7f60LL,0x38610462LL<<20),
-      reale(-0x11163ea6LL,0x7eac51f5LL<<20),
-      reale(0x7d932e0LL,0xe976d3e8LL<<20),reale(0x61bb3b3LL,0x59ab84dbLL<<20),
-      reale(-0xd27d194LL,0xe512c76eLL<<20),reale(0x9233619LL,0x479cb141LL<<20),
-      reale(-0x1c9485dLL,0x69aa5f4LL<<20),reale(-0x11a4428LL,0x52429227LL<<20),
-      reale(0x46c4bcLL,0x203f167aLL<<20),reale(0x64c58bLL,0x9f07728dLL<<20),
-      reale(-0x2cd05aLL,0x768c9b7420000LL),
-      reale(0x140e3a711aLL,0x5ef39e09c8055LL),
+      -reale(326980,1465789373LL<<20),reale(3379554,1566468779LL<<21),
+      -reale(19029758,226591575LL<<20),reale(68313947,940737655LL<<22),
+      -reale(165836985,3033756273LL<<20),reale(273579872,472941105LL<<21),
+      -reale(286670501,2169744907LL<<20),reale(131674848,489609853LL<<23),
+      reale(102478771,1504412891LL<<20),-reale(220713363,225877065LL<<21),
+      reale(153302553,1201451329LL<<20),-reale(29968476,1046042243LL<<22),
+      -reale(18498599,2914872793LL<<20),reale(4637884,270502717LL<<21),
+      reale(6604171,2668065421LL<<20),-reale(2936921,0x8973648be0000LL),
+      reale(86138056986LL,0x5ef39e09c8055LL),
       // C4[10], coeff of eps^13, polynomial in n of order 16
-      real(0x79eb8bc84LL<<24),reale(4651LL,0x6e7d259cLL<<20),
-      reale(-165628LL,0x3e78e38LL<<20),reale(0x1bc9a4LL,0xb429d954LL<<20),
-      reale(-0xa82d4fLL,0xa8d76e3LL<<24),reale(0x2925732LL,0xec937c0cLL<<20),
-      reale(-0x6f56f92LL,0x6bb9d228LL<<20),reale(0xd4bc265LL,0xb4537c4LL<<20),
-      reale(-0x11945208LL,0x429b242LL<<24),reale(0xe70a3f0LL,0x4442b67cLL<<20),
-      reale(-0x397c032LL,0xf190ce18LL<<20),
-      reale(-0x778e643LL,0x54fd2234LL<<20),reale(0xad98259LL,0x23a43a1LL<<24),
-      reale(-0x6f60a2cLL,0x9c7024ecLL<<20),reale(0x230e98dLL,0xa4fdd208LL<<20),
-      reale(-0x2eb6afLL,0x1a96e8a4LL<<20),reale(-731282LL,0x55094ecdc0000LL),
-      reale(0x140e3a711aLL,0x5ef39e09c8055LL),
+      real(8181919521LL<<26),reale(4651,463423847LL<<22),
+      -reale(165627,528682553LL<<23),reale(1821092,755660373LL<<22),
+      -reale(11021646,91392285LL<<24),reale(43145010,992272131LL<<22),
+      -reale(116748177,310953403LL<<23),reale(223068773,47271409LL<<22),
+      -reale(294932999,99296991LL<<25),reale(242263024,286305695LL<<22),
+      -reale(60276785,30271037LL<<23),-reale(125363778,717272947LL<<22),
+      reale(182026841,37372833LL<<24),-reale(116787755,417593029LL<<22),
+      reale(36759949,346012225LL<<23),-reale(3061422,962217431LL<<22),
+      -reale(731281,0xaaf6b13240000LL),reale(86138056986LL,0x5ef39e09c8055LL),
       // C4[10], coeff of eps^12, polynomial in n of order 17
-      real(0x5cb8dc96LL<<20),real(0x340e1216LL<<24),real(0x2e2a4aa22aLL<<20),
-      real(0x73f12ff5634LL<<20),reale(-70024LL,0x3e7cd6beLL<<20),
-      reale(822756LL,0xd51d4108LL<<20),reale(-0x520a0fLL,0x4455852LL<<20),
-      reale(0x15f995cLL,0x470707dcLL<<20),reale(-0x42678d2LL,0xdc8064e6LL<<20),
-      reale(0x922aa2bLL,0x6b1b50bLL<<24),reale(-0xebaeb4cLL,0x43f0da7aLL<<20),
-      reale(0x10f486a1LL,0x8a758184LL<<20),
-      reale(-0xca440d6LL,0x2938770eLL<<20),reale(0x3a751baLL,0x98680058LL<<20),
-      reale(0x3e6dfcaLL,0xf9f818a2LL<<20),reale(-0x5dddfdbLL,0x636732cLL<<20),
-      reale(0x38698b1LL,0x9347fd36LL<<20),reale(-0xe18952LL,0x4a28bcab40000LL),
-      reale(0x140e3a711aLL,0x5ef39e09c8055LL),
+      real(777809483LL<<21),real(436668683LL<<25),real(99139014933LL<<21),
+      real(0x1cfc4bfd58dLL<<22),-reale(70023,1623299233LL<<21),
+      reale(822756,446933025LL<<23),-reale(5376526,2111656919LL<<21),
+      reale(23042396,297910775LL<<22),-reale(69630161,297782669LL<<21),
+      reale(153266731,112309515LL<<24),-reale(247130955,1577554627LL<<21),
+      reale(284460705,580739169LL<<22),-reale(212091093,1801700473LL<<21),
+      reale(61297082,319619083LL<<23),reale(65462218,2096893009LL<<21),
+      -reale(98426842,1047683893LL<<22),reale(59152561,1235484315LL<<21),
+      -reale(14780753,0xb5d74354c0000LL),
+      reale(86138056986LL,0x5ef39e09c8055LL),
       // C4[10], coeff of eps^11, polynomial in n of order 18
-      real(0x96a1e8LL<<20),real(0x35cdab4LL<<20),real(0x17a7bd4LL<<24),
-      real(0xde7dbbccLL<<20),real(0xcf9aac898LL<<20),real(0x227b02f8de4LL<<20),
-      reale(-22185LL,0x4b5805fLL<<24),reale(279989LL,0x7104d2fcLL<<20),
-      reale(-0x1e4c5cLL,0xe6ceb748LL<<20),reale(0x8ec982LL,0x97858d14LL<<20),
-      reale(-0x1e2deffLL,0x4ea41eaLL<<24),reale(0x4c35427LL,0xeda83e2cLL<<20),
-      reale(-0x9272ee4LL,0x14527df8LL<<20),reale(0xd6e9933LL,0x81a2e844LL<<20),
-      reale(-0xedeaa18LL,0xf78175LL<<24),reale(0xc0556bbLL,0x72040d5cLL<<20),
-      reale(-0x6aa01aaLL,0x57562ca8LL<<20),reale(0x23f4800LL,0xa703af74LL<<20),
-      reale(-0x5840deLL,0xcf1b122cc0000LL),
-      reale(0x140e3a711aLL,0x5ef39e09c8055LL),
+      real(1233981LL<<23),real(14104237LL<<22),real(6201077LL<<26),
+      real(933195507LL<<22),real(6966040851LL<<23),real(592370721657LL<<22),
+      -reale(22184,189431713LL<<24),reale(279989,474035391LL<<22),
+      -reale(1985627,52832535LL<<23),reale(9357698,635528005LL<<22),
+      -reale(31645438,92987147LL<<25),reale(79909927,996806539LL<<22),
+      -reale(153562851,494252097LL<<23),reale(225351987,543734289LL<<22),
+      -reale(249473559,252214923LL<<24),reale(201676475,478217047LL<<22),
+      -reale(111804841,353712747LL<<23),reale(37701632,700509149LL<<22),
+      -reale(5783773,3281237837LL<<18),reale(86138056986LL,0x5ef39e09c8055LL),
       // C4[10], coeff of eps^10, polynomial in n of order 19
-      real(57057LL<<20),real(253638LL<<20),real(0x139aebLL<<20),
-      real(478667LL<<24),real(0x35cd075LL<<20),real(0x2144529aLL<<20),
-      real(0x20d243c7fLL<<20),real(0x5cc88e6184LL<<20),
-      reale(-3998LL,0x94b46c09LL<<20),reale(54510LL,0x42c0ca6eLL<<20),
-      reale(-421910LL,0x94ee5c13LL<<20),reale(0x21847fLL,0xc3c98e58LL<<20),
-      reale(-0x7f1665LL,0x8ef9199dLL<<20),reale(0x16e6874LL,0xb3958e42LL<<20),
-      reale(-0x33611beLL,0x5ff561a7LL<<20),reale(0x5a6d78bLL,0x2e272b2cLL<<20),
-      reale(-0x7bac4e8LL,0x3d1d4131LL<<20),reale(0x7dd7c02LL,0x488ce616LL<<20),
-      reale(-0x50e6202LL,0x8837b53bLL<<20),
-      reale(0x16fb8eeLL,0xf664899ae0000LL),
-      reale(0x140e3a711aLL,0x5ef39e09c8055LL),
+      real(57057LL<<20),real(126819LL<<21),real(1284843LL<<20),
+      real(478667LL<<24),real(56414325LL<<20),real(279062861LL<<21),
+      real(8810413183LL<<20),real(99625441377LL<<22),
+      -reale(3997,1800115191LL<<20),reale(54510,559965495LL<<21),
+      -reale(421909,1796318189LL<<20),reale(2196607,410595787LL<<23),
+      -reale(8328804,1896277603LL<<20),reale(24012916,1506461473LL<<21),
+      -reale(53875133,2685050457LL<<20),reale(94820235,193579723LL<<22),
+      -reale(129680615,3269639887LL<<20),reale(131955714,608596747LL<<21),
+      -reale(84828673,2009615045LL<<20),reale(24099054,0xf664899ae0000LL),
+      reale(86138056986LL,0x5ef39e09c8055LL),
       // C4[11], coeff of eps^29, polynomial in n of order 0
-      -real(0x1f26080000LL),real(0xbdc79d6e266b55fLL),
+      -real(255169LL<<19),real(0xbdc79d6e266b55fLL),
       // C4[11], coeff of eps^28, polynomial in n of order 1
-      -real(0x20b454LL<<24),real(0x62986bLL<<20),real(0x56e2cdab4666fea1LL),
+      -real(535829LL<<26),real(6461547LL<<20),real(0x56e2cdab4666fea1LL),
       // C4[11], coeff of eps^27, polynomial in n of order 2
-      -real(0x672444eLL<<24),-real(0xa80833LL<<24),-real(0x5828e0280000LL),
-      reale(65338LL,0x3c271ece8bf8fLL),
+      -real(54075943LL<<25),-real(11012147LL<<24),-real(184884229LL<<19),
+      reale(65338,0x3c271ece8bf8fLL),
       // C4[11], coeff of eps^26, polynomial in n of order 3
-      -real(0x6f59afcLL<<28),real(0x9613a65LL<<32),-real(0x980d63f4LL<<28),
-      real(0x18d56ad118LL<<20),reale(0x12c1778LL,0xb9ff38da93b23LL),
+      -real(29189823LL<<30),real(157366885LL<<32),-real(637753597LL<<30),
+      real(13332470307LL<<23),reale(19666808,0xb9ff38da93b23LL),
       // C4[11], coeff of eps^25, polynomial in n of order 4
-      reale(-768829LL,233799LL<<28),reale(0x24b2b3LL,0x9d2b5a4LL<<24),
-      reale(-595680LL,0x7a659b8LL<<24),reale(-94148LL,0x5f2330cLL<<24),
-      reale(-60456LL,0xb121a272LL<<20),reale(0x15f733d135LL,0x436c57c191ed7LL),
+      -reale(768828,16543417LL<<28),reale(2405043,41201001LL<<26),
+      -reale(595679,17511625LL<<27),-reale(94147,42169149LL<<26),
+      -reale(60455,661597895LL<<21),reale(94341681461LL,0x436c57c191ed7LL),
       // C4[11], coeff of eps^24, polynomial in n of order 5
-      reale(-0x4cef97LL,0xd55fa1LL<<28),reale(0x2574d7LL,0xc08d4cLL<<28),
-      reale(191058LL,0x859fe7LL<<28),reale(0x12d271LL,0xb6e1b6LL<<28),
-      reale(-0xf47b4LL,0x74bffdLL<<28),reale(137539LL,0xc2c0584LL<<20),
-      reale(0x15f733d135LL,0x436c57c191ed7LL),
+      -reale(5042070,2793567LL<<28),reale(2454743,3154771LL<<30),
+      reale(191058,8757223LL<<28),reale(1233521,5992667LL<<29),
+      -reale(1001395,9125891LL<<28),reale(137539,51052897LL<<22),
+      reale(94341681461LL,0x436c57c191ed7LL),
       // C4[11], coeff of eps^23, polynomial in n of order 6
-      reale(-0x7446e2LL,0xcf3ec68LL<<24),reale(-0x1112a3LL,0x41d329cLL<<24),
-      reale(-0x2132d1LL,0x2b503fLL<<28),reale(0x3649a5LL,0xae223c4LL<<24),
-      reale(-479219LL,0x9852d78LL<<24),reale(-128929LL,0xa73166cLL<<24),
-      reale(-115228LL,0x34390ee2LL<<20),
-      reale(0x15f733d135LL,0x436c57c191ed7LL),
+      -reale(7620321,6390387LL<<27),-reale(1118882,49853273LL<<26),
+      -reale(2175696,13938625LL<<28),reale(3557797,45648113LL<<26),
+      -reale(479218,13589073LL<<27),-reale(128928,23280229LL<<26),
+      -reale(115227,1709406351LL<<21),reale(94341681461LL,0x436c57c191ed7LL),
       // C4[11], coeff of eps^22, polynomial in n of order 7
-      reale(0x2e3ea5LL,0xf2ce54LL<<28),reale(0x18b054LL,874507LL<<32),
-      reale(-0x8ca6c9LL,0xf7c2dcLL<<28),reale(0x1af681LL,194126LL<<32),
-      reale(345531LL,0xbb5ec4LL<<28),reale(0x223033LL,263433LL<<32),
-      reale(-0x155d9aLL,0xc9524cLL<<28),reale(154222LL,0x8d6ad0d8LL<<20),
-      reale(0x15f733d135LL,0x436c57c191ed7LL),
+      reale(3030693,3978133LL<<30),reale(1618004,874507LL<<32),
+      -reale(9217736,134985LL<<30),reale(1767041,97063LL<<33),
+      reale(345531,3069873LL<<30),reale(2240563,263433LL<<32),
+      -reale(1400217,895853LL<<30),reale(154222,296573467LL<<23),
+      reale(94341681461LL,0x436c57c191ed7LL),
       // C4[11], coeff of eps^21, polynomial in n of order 8
-      reale(304504LL,0xbeba70cLL<<24),reale(0x14eef75LL,0x34d46048LL<<20),
-      reale(-0x4c6015LL,0xc143319LL<<24),reale(-0x2e5cf9LL,0xcf35d858LL<<20),
-      reale(-0x5b33e8LL,0xbd68906LL<<24),reale(0x4ca422LL,0xe77fa168LL<<20),
-      reale(-45294LL,0xf8ac833LL<<24),reale(-123971LL,0xaa6e8178LL<<20),
-      reale(-222793LL,0x8dac164e40000LL),
-      reale(0x15f733d135LL,0x436c57c191ed7LL),
+      reale(304504,49998275LL<<26),reale(21950325,110791689LL<<23),
+      -reale(5005332,65785063LL<<24),-reale(3038456,102319349LL<<23),
+      -reale(5977063,34913149LL<<25),reale(5022754,485487661LL<<23),
+      -reale(45293,7681997LL<<24),-reale(123970,179449809LL<<23),
+      -reale(222792,7672407751LL<<18),reale(94341681461LL,0x436c57c191ed7LL),
       // C4[11], coeff of eps^20, polynomial in n of order 9
-      reale(-0x35d16eaLL,0x19cc9aeLL<<24),reale(0x5f5197LL,0x97e859LL<<28),
-      reale(0xae1bafLL,0x9ecb7b2LL<<24),reale(0xe030e3LL,0xbd74e4cLL<<24),
-      reale(-0xd316c9LL,0x12b9196LL<<24),reale(-0x12ffc4LL,0xb4f69c8LL<<24),
-      reale(-339986LL,0x2585d1aLL<<24),reale(0x417addLL,0x56a51c4LL<<24),
-      reale(-0x1e390eLL,0x43e1ffeLL<<24),reale(159775LL,0xd187ea4f80000LL),
-      reale(0x15f733d135LL,0x436c57c191ed7LL),
+      -reale(56432361,120691497LL<<25),reale(6246807,9955417LL<<28),
+      reale(11410351,83254233LL<<25),reale(14692579,49664915LL<<26),
+      -reale(13833928,124401461LL<<25),-reale(1245123,9835207LL<<27),
+      -reale(339985,114545011LL<<25),reale(4291293,22713457LL<<26),
+      -reale(1980685,98627585LL<<25),reale(159775,7030690975LL<<19),
+      reale(94341681461LL,0x436c57c191ed7LL),
       // C4[11], coeff of eps^19, polynomial in n of order 10
-      reale(0x26ef703LL,0xdf6cf1bLL<<24),reale(-0x123d1c6LL,0xb2f34918LL<<20),
-      reale(-0x30a90e5LL,0x3d857bcLL<<24),reale(0x1d39fffLL,0xb7852868LL<<20),
-      reale(0x95c49dLL,0x68acddLL<<24),reale(639236LL,0x74addeb8LL<<20),
-      reale(-0xe4250aLL,0xe8f075eLL<<24),reale(0x5a465aLL,0x48074a08LL<<20),
-      reale(0x10620cLL,0xd7d681fLL<<24),reale(80953LL,0xb5ac0858LL<<20),
-      reale(-451112LL,0xf0086f6940000LL),
-      reale(0x15f733d135LL,0x436c57c191ed7LL),
+      reale(40826627,234278683LL<<24),-reale(19124677,161584861LL<<23),
+      -reale(51024100,50981393LL<<26),reale(30646271,384869645LL<<23),
+      reale(9815197,6859997LL<<24),reale(639236,244693975LL<<23),
+      -reale(14951689,12090449LL<<25),reale(5916250,151054657LL<<23),
+      reale(1073676,226322463LL<<24),reale(80953,380993803LL<<23),
+      -reale(451111,0xff79096c0000LL),reale(94341681461LL,0x436c57c191ed7LL),
       // C4[11], coeff of eps^18, polynomial in n of order 11
-      reale(-0xdef5588LL,0xca0ea7LL<<28),reale(0xa9a6afdLL,0xe5a3b4LL<<28),
-      reale(-0x53b88aLL,0x76f2a5LL<<28),reale(-0x2aec778LL,825675LL<<32),
-      reale(-0x1543276LL,0xa4c90bLL<<28),reale(0x2c5876aLL,0xcc4aecLL<<28),
-      reale(-0x7fe5fcLL,0xf0df89LL<<28),reale(-0x748622LL,0x2da518LL<<28),
-      reale(-0x4df20cLL,0x9d2bcfLL<<28),reale(0x82c05aLL,0x3961e4LL<<28),
-      reale(-0x2a4294LL,0x535b8dLL<<28),reale(126172LL,0x8a3e4592LL<<20),
-      reale(0x15f733d135LL,0x436c57c191ed7LL),
+      -reale(233788807,3535193LL<<28),reale(177892093,3762413LL<<30),
+      -reale(5486729,8981851LL<<28),-reale(45008759,222901LL<<32),
+      -reale(22295157,5977845LL<<28),reale(46499690,3347131LL<<30),
+      -reale(8381947,991351LL<<28),-reale(7636513,1723229LL<<31),
+      -reale(5108235,6476849LL<<28),reale(8568922,940153LL<<30),
+      -reale(2769555,11314291LL<<28),reale(126172,1159668425LL<<21),
+      reale(94341681461LL,0x436c57c191ed7LL),
       // C4[11], coeff of eps^17, polynomial in n of order 12
-      reale(0xeb3d623LL,0x5926ed4LL<<24),reale(-0x30566c7LL,0x3cc3621LL<<24),
-      reale(-0xab79731LL,0x9e9c766LL<<24),reale(0xd83fac8LL,0x5f60b3bLL<<24),
-      reale(-0x4fd042aLL,0xfaa1138LL<<24),reale(-0x22701ebLL,0xf123475LL<<24),
-      reale(0x110d3d3LL,0x3367c0aLL<<24),reale(0x21ba997LL,0x45ddb8fLL<<24),
-      reale(-0x1c5a556LL,0x3b3f79cLL<<24),reale(0x1ef725LL,0x64b1249LL<<24),
-      reale(0x31320dLL,0xe57c3aeLL<<24),reale(0x11adb6LL,0x4fa2263LL<<24),
-      reale(-999785LL,0x48d2892080000LL),
-      reale(0x15f733d135LL,0x436c57c191ed7LL),
+      reale(246666787,23370677LL<<26),-reale(50685638,204720607LL<<24),
+      -reale(179803952,51059789LL<<25),reale(226753224,100010811LL<<24),
+      -reale(83690537,703961LL<<27),-reale(36110826,15584139LL<<24),
+      reale(17880019,26951173LL<<25),reale(35367319,73259919LL<<24),
+      -reale(29730133,51577369LL<<26),reale(2029349,105583177LL<<24),
+      reale(3224077,120316375LL<<25),reale(1158582,83501667LL<<24),
+      -reale(999784,6146420159LL<<19),reale(94341681461LL,0x436c57c191ed7LL),
       // C4[11], coeff of eps^16, polynomial in n of order 13
-      reale(0x81325abLL,0xb23234LL<<24),reale(-0xe5bb47aLL,0x6a1a7dLL<<28),
-      reale(0x10858d4bLL,0xb84e1acLL<<24),reale(-0x92bbb1bLL,0x5728018LL<<24),
-      reale(-0x4a7469dLL,0x3d93f64LL<<24),reale(0xd5de4f7LL,0xc6fbbeLL<<28),
-      reale(-0xa112ebcLL,0xa5ce5dcLL<<24),reale(0x1830c6fLL,0xeaaada8LL<<24),
-      reale(0x206abaaLL,0x54c6f94LL<<24),reale(-0x1438d4LL,0x342a7fLL<<28),
-      reale(-0x190eaf6LL,0xfad770cLL<<24),reale(0x106613bLL,0x60f7d38LL<<24),
-      reale(-0x354e5eLL,0x2da96c4LL<<24),reale(-37172LL,0x4d64d235LL<<20),
-      reale(0x15f733d135LL,0x436c57c191ed7LL),
+      reale(135472555,2919565LL<<26),-reale(240891001,9823619LL<<28),
+      reale(277187915,48314475LL<<26),-reale(153860890,22130685LL<<27),
+      -reale(78071452,50966567LL<<26),reale(224257271,6520287LL<<29),
+      -reale(168898235,23643785LL<<26),reale(25365615,30758325LL<<27),
+      reale(33991594,22223845LL<<26),-reale(1325267,13358465LL<<28),
+      -reale(26274549,1352253LL<<26),reale(17195323,12709799LL<<27),
+      -reale(3493469,55138895LL<<26),-reale(37171,2996514251LL<<20),
+      reale(94341681461LL,0x436c57c191ed7LL),
       // C4[11], coeff of eps^15, polynomial in n of order 14
-      reale(0x7fb3fdLL,0x7d8f1a2LL<<24),reale(-0x20df1d1LL,0xb5fbbf7LL<<24),
-      reale(0x5db0016LL,0xc083d94LL<<24),reale(-0xbcb0798LL,0xaa8d11LL<<24),
-      reale(0x106dd7a3LL,0xf1de306LL<<24),reale(-0xe255c04LL,0x9743a8bLL<<24),
-      reale(0x370921bLL,0x2e25b8LL<<24),reale(0x895b345LL,0xa7ba25LL<<24),
-      reale(-0xc671512LL,0x5bb796aLL<<24),reale(0x728d461LL,0xae6199fLL<<24),
-      reale(-0xc24b9aLL,0x96611dcLL<<24),reale(-0x1202f11LL,0x563ceb9LL<<24),
-      reale(0x2707aaLL,0x2d372ceLL<<24),reale(0x644aaeLL,0xa570733LL<<24),
-      reale(-0x28af73LL,0x8822702880000LL),
-      reale(0x15f733d135LL,0x436c57c191ed7LL),
+      reale(8369149,65829073LL<<25),-reale(34468304,77612041LL<<24),
+      reale(98238486,50466661LL<<26),-reale(197855127,257258223LL<<24),
+      reale(275634083,126808451LL<<25),-reale(237329411,109823349LL<<24),
+      reale(57709083,378039LL<<27),reale(144028485,10992165LL<<24),
+      -reale(208082193,86131531LL<<25),reale(120116321,182851999LL<<24),
+      -reale(12733337,27687817LL<<26),-reale(18886416,178008391LL<<24),
+      reale(2557866,23705959LL<<25),reale(6572718,173475635LL<<24),
+      -reale(2666354,4022017967LL<<19),reale(94341681461LL,0x436c57c191ed7LL),
       // C4[11], coeff of eps^14, polynomial in n of order 15
-      reale(54399LL,0x7d7e5bLL<<28),reale(-665622LL,0xa9e8fcLL<<28),
-      reale(0x4516e6LL,0xa12949LL<<28),reale(-0x133f030LL,0x3d6c48LL<<28),
-      reale(0x3c5ddc9LL,0x4528ffLL<<28),reale(-0x895fe5fLL,0x1be074LL<<28),
-      reale(0xe304ef1LL,0x35d1adLL<<28),reale(-0x105e3c14LL,562731LL<<32),
-      reale(0xb44d7c8LL,0x2eff83LL<<28),reale(-0x905839LL,0xf8302cLL<<28),
-      reale(-0x868c3d2LL,0xc8a6b1LL<<28),reale(0x9f23759LL,0x9c0618LL<<28),
-      reale(-0x5d2f61aLL,74599LL<<28),reale(0x1afe1f8LL,0xfb81a4LL<<28),
-      reale(-0x1a0fd8LL,0x25c9d5LL<<28),reale(-691966LL,0x8d060e02LL<<20),
-      reale(0x15f733d135LL,0x436c57c191ed7LL),
+      reale(54399,8224347LL<<28),-reale(665621,1410497LL<<30),
+      reale(4527846,10561865LL<<28),-reale(20181039,1593975LL<<31),
+      reale(63299017,4532479LL<<28),-reale(144047710,3737571LL<<30),
+      reale(238046961,3527085LL<<28),-reale(274611219,485845LL<<32),
+      reale(189061064,3080067LL<<28),-reale(9459768,127989LL<<30),
+      -reale(141083601,3627343LL<<28),reale(166868825,1278147LL<<31),
+      -reale(97711641,16702617LL<<28),reale(28303864,4120681LL<<30),
+      -reale(1707991,14300715LL<<28),-reale(691965,964491519LL<<21),
+      reale(94341681461LL,0x436c57c191ed7LL),
       // C4[11], coeff of eps^13, polynomial in n of order 16
-      -real(0xbc4739e8LL<<24),-real(0x2058be1d1f8LL<<20),
-      reale(21507LL,0xd2cf265LL<<24),reale(-280153LL,0xf868d618LL<<20),
-      reale(0x1f3a9fLL,0x92ccb12LL<<24),reale(-0x97320aLL,0xf19bf728LL<<20),
-      reale(0x20b2df2LL,0x89df7fLL<<24),reale(-0x53f6d2bLL,0x6ec4d738LL<<20),
-      reale(0xa26103bLL,0x9df0f0cLL<<24),reale(-0xeb20174LL,0xaa2fc48LL<<20),
-      reale(0xf5a086bLL,0x152d119LL<<24),reale(-0xa3a5adeLL,0xdca2ac58LL<<20),
-      reale(0x1e9c7a3LL,0xbf47d06LL<<24),reale(0x444daa3LL,0x588f6d68LL<<20),
-      reale(-0x56cf580LL,0x3959233LL<<24),reale(0x31fe3f8LL,0xef0e8578LL<<20),
-      reale(-0xc5220eLL,0x88f9c58840000LL),
-      reale(0x15f733d135LL,0x436c57c191ed7LL),
+      -real(394848061LL<<27),-real(277855615551LL<<23),
+      reale(21507,221049445LL<<24),-reale(280152,15918397LL<<23),
+      reale(2046623,76965257LL<<25),-reale(9908745,30179611LL<<23),
+      reale(34287090,9035647LL<<24),-reale(88042794,304571673LL<<23),
+      reale(170266683,41403331LL<<26),-reale(246546803,514564215LL<<23),
+      reale(257558635,22204697LL<<24),-reale(171596509,74164853LL<<23),
+      reale(32098211,100286083LL<<25),reale(71621283,185724333LL<<23),
+      -reale(91026815,208301517LL<<24),reale(52421624,501338287LL<<23),
+      -reale(12919309,7987587551LL<<18),reale(94341681461LL,0x436c57c191ed7LL),
       // C4[11], coeff of eps^12, polynomial in n of order 17
-      -real(0x4c7f9aLL<<24),-real(0x30ae96LL<<28),-real(0x315e58a6LL<<24),
-      -real(0x8f37a5414LL<<24),reale(6318LL,0xf71dfaeLL<<24),
-      reale(-88019LL,0xc301df8LL<<24),reale(693686LL,0xbce3822LL<<24),
-      reale(-0x37e55cLL,0x7069f84LL<<24),reale(0xd5f852LL,0x9f2bf76LL<<24),
-      reale(-0x26b7d77LL,0x982e35LL<<28),reale(0x56bf82dLL,0xe33846aLL<<24),
-      reale(-0x97d842eLL,0xfcfdc1cLL<<24),reale(0xcf279d2LL,0xd6595beLL<<24),
-      reale(-0xd8c17b4LL,0x36d7ca8LL<<24),reale(0xa7eb38cLL,0x1190232LL<<24),
-      reale(-0x5a3a475LL,0x51c77b4LL<<24),reale(0x1dc1847LL,0x291d886LL<<24),
-      reale(-0x47e901LL,0xeb1f8a1180000LL),
-      reale(0x15f733d135LL,0x436c57c191ed7LL),
+      -real(2506701LL<<25),-real(1595211LL<<29),-real(414133331LL<<25),
+      -real(9611154693LL<<26),reale(6318,129560535LL<<25),
+      -reale(88018,7994433LL<<27),reale(693686,99032081LL<<25),
+      -reale(3663195,37640223LL<<26),reale(14022738,83451835LL<<25),
+      -reale(40598902,6803915LL<<28),reale(90961965,119128629LL<<25),
+      -reale(159220781,788729LL<<26),reale(217217490,112380639LL<<25),
+      -reale(227284915,26366059LL<<27),reale(176075660,9208089LL<<25),
+      -reale(94610548,45670931LL<<26),reale(31201351,21556291LL<<25),
+      -reale(4712704,700509149LL<<19),reale(94341681461LL,0x436c57c191ed7LL),
       // C4[11], coeff of eps^11, polynomial in n of order 18
-      -real(13041LL<<24),-real(0x146168LL<<20),-real(662216LL<<24),
-      -real(0x6bfe398LL<<20),-real(0x737e19fLL<<24),-real(0x1633e28ec8LL<<20),
-      real(0x4153bd106aLL<<24),reale(-15650LL,0x87866b08LL<<20),
-      reale(133731LL,0xd6f7b33LL<<24),reale(-773735LL,0xc8d497d8LL<<20),
-      reale(0x3223deLL,0x58eae9cLL<<24),reale(-0xa38670LL,0xa9a4c5a8LL<<20),
-      reale(0x1a47e42LL,0xde0f285LL<<24),reale(-0x36058dfLL,0x378b8278LL<<20),
-      reale(0x58fa16eLL,0xefceeceLL<<24),reale(-0x73e7758LL,0xc0e19c48LL<<20),
-      reale(0x72107bbLL,0x72f1357LL<<24),reale(-0x47e9002LL,0xb1f8a118LL<<20),
-      reale(0x1439880LL,0x5df212b140000LL),
-      reale(0x15f733d135LL,0x436c57c191ed7LL),
+      -real(13041LL<<24),-real(166957LL<<23),-real(82777LL<<27),
+      -real(14154867LL<<23),-real(121102751LL<<24),-real(11919970777LL<<23),
+      real(140288886837LL<<25),-reale(15649,252654239LL<<23),
+      reale(133731,225409843LL<<24),-reale(773734,115698949LL<<23),
+      reale(3285982,23309223LL<<26),-reale(10716783,181102411LL<<23),
+      reale(27557442,232845957LL<<24),-reale(56645854,420384689LL<<23),
+      reale(93299054,125728615LL<<25),-reale(121534295,132369527LL<<23),
+      reale(119605179,120525655LL<<24),-reale(75403265,163638237LL<<23),
+      reale(21207168,6304582341LL<<18),reale(94341681461LL,0x436c57c191ed7LL),
       // C4[12], coeff of eps^29, polynomial in n of order 0
-      real(16904LL<<20),real(0x495846bc80a035LL),
+      real(2113LL<<23),real(0x495846bc80a035LL),
       // C4[12], coeff of eps^28, polynomial in n of order 1
-      -real(0x9a681aLL<<24),-real(0x5ab210cLL<<20),
-      reale(61953LL,0x75e619a89ce07LL),
+      -real(5059597LL<<25),-real(23775299LL<<22),
+      reale(61953,0x75e619a89ce07LL),
       // C4[12], coeff of eps^27, polynomial in n of order 2
-      real(0x3aca642LL<<28),-real(0x34bd5bbLL<<28),real(0x7d57dc9LL<<24),
-      reale(497138LL,0xbe8dd4238d2e7LL),
+      real(30823201LL<<29),-real(55301563LL<<28),real(131431881LL<<24),
+      reale(497138,0xbe8dd4238d2e7LL),
       // C4[12], coeff of eps^26, polynomial in n of order 3
-      real(0x1e06447abLL<<28),-real(0x5a3f19aeLL<<28),-real(0x128cc8c7LL<<28),
-      -real(0xddf8d6LL<<32),reale(0x1462fc6LL,0x1d2a1f8b6ccdLL),
+      real(8059635627LL<<28),-real(757042391LL<<29),-real(311216327LL<<28),
+      -real(7273579LL<<33),reale(21376966,0x1d2a1f8b6ccdLL),
       // C4[12], coeff of eps^25, polynomial in n of order 4
-      reale(590308LL,0x2dd66cLL<<28),reale(77521LL,0xf4de25LL<<28),
-      reale(426657LL,250006LL<<28),reale(-306167LL,0xaff9d7LL<<28),
-      reale(37995LL,0xc577dbbLL<<24),reale(0x7f56465c5LL,0x62a1b07dc9473LL),
+      reale(590308,751003LL<<30),reale(77521,16047653LL<<28),
+      reale(426657,125003LL<<29),-reale(306166,5244457LL<<28),
+      reale(37995,207060411LL<<24),reale(34181768645LL,0x62a1b07dc9473LL),
       // C4[12], coeff of eps^24, polynomial in n of order 5
-      reale(-0x1868abLL,0xedbb168LL<<24),reale(-0x28c2d7LL,0x63a582LL<<28),
-      reale(0x31b08cLL,0x7cf2cd8LL<<24),reale(-261262LL,0xc33c21LL<<28),
-      reale(-106563LL,0xf6cfe48LL<<24),reale(-120794LL,0xff048abLL<<24),
-      reale(0x17e02d3150LL,0x27e511795bd59LL),
+      -reale(1599658,2394579LL<<27),-reale(2671318,5123391LL<<29),
+      reale(3256460,16377243LL<<27),-reale(261261,3982303LL<<28),
+      -reale(106562,1204279LL<<27),-reale(120793,1029973LL<<24),
+      reale(102545305936LL,0x27e511795bd59LL),
       // C4[12], coeff of eps^23, polynomial in n of order 6
-      reale(0x130e05LL,0x8aa00aLL<<28),reale(-0x2c180eLL,0x6a42ffLL<<28),
-      reale(234885LL,0xbf619cLL<<28),reale(66922LL,0x973059LL<<28),
-      reale(755418LL,0x1367aeLL<<28),reale(-419246LL,0x369313LL<<28),
-      reale(41213LL,0xb7cf7a7LL<<24),reale(0x7f56465c5LL,0x62a1b07dc9473LL),
+      reale(1248773,4542469LL<<29),-reale(2889741,9813249LL<<28),
+      reale(234885,3135591LL<<30),reale(66922,9908313LL<<28),
+      reale(755418,635863LL<<29),-reale(419245,13200621LL<<28),
+      reale(41213,192739239LL<<24),reale(34181768645LL,0x62a1b07dc9473LL),
       // C4[12], coeff of eps^22, polynomial in n of order 7
-      reale(0x13eb197LL,0x4b5b07LL<<28),reale(-0x10e777LL,0xda51a6LL<<28),
-      reale(-0x242b4aLL,0xc67305LL<<28),reale(-0x641eacLL,0xd9e1c4LL<<28),
-      reale(0x414e2bLL,0xa4c103LL<<28),reale(210660LL,0x72cde2LL<<28),
-      reale(-68725LL,0xe0f901LL<<28),reale(-224556LL,0xdcd37eLL<<28),
-      reale(0x17e02d3150LL,0x27e511795bd59LL),
+      reale(20885911,4938503LL<<28),-reale(1107830,1234733LL<<29),
+      -reale(2370377,3771643LL<<28),-reale(6561451,624527LL<<30),
+      reale(4279851,10797315LL<<28),reale(210660,3761905LL<<29),
+      -reale(68724,2033407LL<<28),-reale(224555,1152577LL<<29),
+      reale(102545305936LL,0x27e511795bd59LL),
       // C4[12], coeff of eps^21, polynomial in n of order 8
-      reale(-0x54decfLL,0xfb5258LL<<28),reale(0x762145LL,0x443871LL<<28),
-      reale(0x1097e20LL,0xbba962LL<<28),reale(-0xa62ed3LL,0x5c0bc3LL<<28),
-      reale(-0x24239fLL,0xe4c42cLL<<28),reale(-891563LL,0x747035LL<<28),
-      reale(0x3fd622LL,786806LL<<28),reale(-0x1a6626LL,0xa35887LL<<28),
-      reale(120797LL,0x11dfcd3LL<<24),reale(0x17e02d3150LL,0x27e511795bd59LL),
+      -reale(5562062,38325LL<<31),reale(7741765,4470897LL<<28),
+      reale(17399328,6149297LL<<29),-reale(10890962,10744893LL<<28),
+      -reale(2368414,446197LL<<30),-reale(891562,9146315LL<<28),
+      reale(4183586,393403LL<<29),-reale(1730085,6072185LL<<28),
+      reale(120797,18742483LL<<24),reale(102545305936LL,0x27e511795bd59LL),
       // C4[12], coeff of eps^20, polynomial in n of order 9
-      reale(0x32da72LL,0xaace967LL<<24),reale(-0x33bb725LL,0x59030b8LL<<24),
-      reale(0x11933eeLL,0x20bc689LL<<24),reale(0xbb9523LL,0xca47e4aLL<<24),
-      reale(0x3d6a61LL,0x4b092ebLL<<24),reale(-0xddaf0fLL,0xfb2ea5cLL<<24),
-      reale(0x426269LL,0x233d90dLL<<24),reale(0x1317c7LL,0xb02256eLL<<24),
-      reale(191236LL,0x4d0b6fLL<<24),reale(-439125LL,0x1391d242LL<<20),
-      reale(0x17e02d3150LL,0x27e511795bd59LL),
+      reale(3332722,179104103LL<<24),-reale(54245156,21887465LL<<27),
+      reale(18428910,34326153LL<<24),reale(12293411,106053413LL<<25),
+      reale(4024929,78680811LL<<24),-reale(14528270,1262953LL<<26),
+      reale(4350569,36952333LL<<24),reale(1251271,92345015LL<<25),
+      reale(191236,5049199LL<<24),-reale(439124,1983321823LL<<21),
+      reale(102545305936LL,0x27e511795bd59LL),
       // C4[12], coeff of eps^19, polynomial in n of order 10
-      reale(0x705c1e4LL,0x4a6fb88LL<<24),reale(0x1bf27f2LL,0x5362b64LL<<24),
-      reale(-0x204a06fLL,0x99d1daLL<<28),reale(-0x21258daLL,0x8ca3adcLL<<24),
-      reale(0x26b2689LL,0x5404bb8LL<<24),reale(-0x1b9e2dLL,0x7162cd4LL<<24),
-      reale(-0x6b0945LL,0x68402dLL<<28),reale(-0x5e0a9cLL,0x11f6e4cLL<<24),
-      reale(0x7950d6LL,0x1383fe8LL<<24),reale(-0x237620LL,0xf3f2c44LL<<24),
-      reale(80031LL,0xf5c3b6d4LL<<20),reale(0x17e02d3150LL,0x27e511795bd59LL),
+      reale(117817828,9756529LL<<27),reale(29304818,21859033LL<<26),
+      -reale(33857646,3348243LL<<29),-reale(34756825,30241097LL<<26),
+      reale(40576649,11012471LL<<27),-reale(1809964,37385419LL<<26),
+      -reale(7014724,9945043LL<<28),-reale(6163099,62399597LL<<26),
+      reale(7950550,2557949LL<<27),-reale(2323999,3159279LL<<26),
+      reale(80031,1030811061LL<<22),reale(102545305936LL,0x27e511795bd59LL),
       // C4[12], coeff of eps^18, polynomial in n of order 11
-      reale(0x23ee97fLL,0xa65c9a4LL<<24),reale(-0xca93b9fLL,0xdf70b8LL<<24),
-      reale(0xb4077f0LL,0xe87daccLL<<24),reale(-0x238cc17LL,0x434fd6LL<<28),
-      reale(-0x2a0e0c8LL,0x8791bf4LL<<24),reale(0x56ec98LL,0x5016a08LL<<24),
-      reale(0x244a99aLL,0x1b4ad1cLL<<24),reale(-0x1763968LL,0x3a5debLL<<28),
-      reale(-350074LL,0x236ce44LL<<24),reale(0x2c4696LL,0x896c358LL<<24),
-      reale(0x1421baLL,0xf211f6cLL<<24),reale(-941374LL,0x1cbc174LL<<24),
-      reale(0x17e02d3150LL,0x27e511795bd59LL),
+      reale(37677439,43610729LL<<26),-reale(212417438,31724009LL<<27),
+      reale(188774384,60946099LL<<26),-reale(37276694,6182933LL<<29),
+      -reale(44097735,31570179LL<<26),reale(5696664,10497345LL<<27),
+      reale(38054298,7154503LL<<26),-reale(24525159,12952085LL<<28),
+      -reale(350073,57822319LL<<26),reale(2901654,18012267LL<<27),
+      reale(1319354,63457243LL<<26),-reale(941373,59576227LL<<26),
+      reale(102545305936LL,0x27e511795bd59LL),
       // C4[12], coeff of eps^17, polynomial in n of order 12
-      reale(-0xf1a7e00LL,0xe9af59LL<<28),reale(0xe2a8b60LL,0x18fa14LL<<24),
-      reale(-0x48c3081LL,0x27d1d78LL<<24),reale(-0x7fabce1LL,0xbe51b1cLL<<24),
-      reale(0xd01125eLL,0x500766LL<<28),reale(-0x7a118f1LL,0x23126a4LL<<24),
-      reale(363472LL,0xea5c348LL<<24),reale(0x1f2acd0LL,0xffafacLL<<24),
-      reale(0x475db8LL,0xf57c73LL<<28),reale(-0x18a8f8bLL,0xe4c0934LL<<24),
-      reale(0xe3954bLL,0x470c518LL<<24),reale(-0x29af16LL,0x387c63cLL<<24),
-      reale(-76353LL,0x52dcee0cLL<<20),reale(0x17e02d3150LL,0x27e511795bd59LL),
+      -reale(253394431,1462439LL<<28),reale(237669216,409221LL<<26),
+      -reale(76296320,28335185LL<<27),-reale(133872864,17217849LL<<26),
+      reale(218174046,2622387LL<<29),-reale(127998192,57914967LL<<26),
+      reale(363472,30718057LL<<27),reale(32681168,4189163LL<<26),
+      reale(4677048,16088179LL<<28),-reale(25857930,7142835LL<<26),
+      reale(14914891,9312419LL<<27),-reale(2731797,52301425LL<<26),
+      -reale(76352,726189181LL<<22),reale(102545305936LL,0x27e511795bd59LL),
       // C4[12], coeff of eps^16, polynomial in n of order 13
-      reale(-0x3328892LL,0x45ae872LL<<24),reale(0x7981896LL,0x1838ef8LL<<24),
-      reale(-0xd135377LL,0xe641feLL<<24),reale(0xfa08086LL,0xbb034a4LL<<24),
-      reale(-0xae1efafLL,0x3beb0aLL<<24),reale(-0x3c5d59LL,0x16b275LL<<28),
-      reale(0xa01a759LL,0x6cbd696LL<<24),reale(-0xb425220LL,0x4e67dfcLL<<24),
-      reale(0x5760a52LL,0x308a7a2LL<<24),reale(-762368LL,0x37dcfa8LL<<24),
-      reale(-0x1136a7eLL,0xe75512eLL<<24),reale(839158LL,0x28bd354LL<<24),
-      reale(0x6245dfLL,0x392b63aLL<<24),reale(-0x250e87LL,0x15bafadcLL<<20),
-      reale(0x17e02d3150LL,0x27e511795bd59LL),
+      -reale(53643409,97684423LL<<25),reale(127408278,3174879LL<<27),
+      -reale(219370358,126672641LL<<25),reale(262176902,49024297LL<<26),
+      -reale(182579118,132254331LL<<25),-reale(3956056,15289739LL<<28),
+      reale(167880537,57011019LL<<25),-reale(188895775,46555265LL<<26),
+      reale(91621970,25449425LL<<25),-reale(762367,26232331LL<<27),
+      -reale(18049661,12932969LL<<25),reale(839158,10679509LL<<26),
+      reale(6440415,29973277LL<<25),-reale(2428550,982597961LL<<22),
+      reale(102545305936LL,0x27e511795bd59LL),
       // C4[12], coeff of eps^15, polynomial in n of order 14
-      reale(-0x1b42ceLL,0x97fa1e8LL<<24),reale(0x88697eLL,0x5071c6cLL<<24),
-      reale(-0x1e6dfd8LL,0xa1c9c1LL<<28),reale(0x50509b8LL,0x12dc734LL<<24),
-      reale(-0x9e9ff75LL,0xa94b438LL<<24),reale(0xe77683bLL,0x21cf57cLL<<24),
-      reale(-0xeb7f87dLL,0x151256LL<<28),reale(0x852eb3aLL,0xbef7244LL<<24),
-      reale(0x1c20a31LL,0x933aa88LL<<24),reale(-0x8d28625LL,0xb8d488cLL<<24),
-      reale(0x9029bbcLL,622571LL<<28),reale(-0x4e16fa2LL,0x2c54354LL<<24),
-      reale(0x14e39e1LL,0x7555cd8LL<<24),reale(-792997LL,0xc866d9cLL<<24),
-      reale(-644310LL,0x92d390ecLL<<20),
-      reale(0x17e02d3150LL,0x27e511795bd59LL),
+      -reale(1786573,13634499LL<<27),reale(8939902,21088027LL<<26),
+      -reale(31907799,6174271LL<<28),reale(84216248,4944333LL<<26),
+      -reale(166330228,11364729LL<<27),reale(242706491,8863071LL<<26),
+      -reale(246937724,7698133LL<<29),reale(139651898,50060433LL<<26),
+      reale(29493809,19297617LL<<27),-reale(148014628,18656733LL<<26),
+      reale(151165884,622571LL<<28),-reale(81883041,55488299LL<<26),
+      reale(21903841,15379355LL<<27),-reale(792996,14574745LL<<26),
+      -reale(644309,457907141LL<<22),reale(102545305936LL,0x27e511795bd59LL),
       // C4[12], coeff of eps^14, polynomial in n of order 15
-      reale(-6505LL,0x92293b4LL<<24),reale(93075LL,0xfdd7228LL<<24),
-      reale(-752119LL,0xe75899cLL<<24),reale(0x3df976LL,0xb48d79LL<<28),
-      reale(-0xf1b6e6LL,0x79bef84LL<<24),reale(0x2c5451aLL,0x92c8cf8LL<<24),
-      reale(-0x63dbf25LL,0xce4256cLL<<24),reale(0xad6f8a8LL,0xeee7a6LL<<28),
-      reale(-0xe508b0cLL,0x7602b54LL<<24),reale(0xdb5669eLL,0x4c947c8LL<<24),
-      reale(-0x8283b03LL,0x587e13cLL<<24),reale(0x98726bLL,0x26e9d3LL<<28),
-      reale(0x4711694LL,0x15b4724LL<<24),reale(-0x5029e00LL,0xfa96298LL<<24),
-      reale(0x2c9e8d8LL,0xd04bd0cLL<<24),reale(-0xae0e62LL,0x6a163c4LL<<24),
-      reale(0x17e02d3150LL,0x27e511795bd59LL),
+      -reale(6504,28793619LL<<26),reale(93075,33271365LL<<27),
+      -reale(752118,6462873LL<<26),reale(4061558,11832697LL<<28),
+      -reale(15840997,35193887LL<<26),reale(46482714,19239327LL<<27),
+      -reale(104709924,13039269LL<<26),reale(181860520,7828435LL<<29),
+      -reale(240159499,36173099LL<<26),reale(229992094,10037497LL<<27),
+      -reale(136854274,43911089LL<<26),reale(9990763,2550227LL<<28),
+      reale(74520212,5689801LL<<26),-reale(84057599,709549LL<<27),
+      reale(46786776,54603587LL<<26),-reale(11406945,39298831LL<<26),
+      reale(102545305936LL,0x27e511795bd59LL),
       // C4[12], coeff of eps^13, polynomial in n of order 16
-      real(0x3ede9cLL<<28),real(0xc5bfb074LL<<24),-real(0x251c8220f8LL<<24),
-      reale(9050LL,0x293775cLL<<24),reale(-78489LL,0x725735LL<<28),
-      reale(459151LL,0x559e0c4LL<<24),reale(-0x1df2ddLL,0x76c7d98LL<<24),
-      reale(0x61c892LL,0x1dd53acLL<<24),reale(-0xfa2ba9LL,0xce5d4eLL<<28),
-      reale(0x1fc4a99LL,0x878f714LL<<24),reale(-0x33727e6LL,0xca2d028LL<<24),
-      reale(0x41fef20LL,0xea431fcLL<<24),reale(-0x41d0a88LL,0xc66c67LL<<28),
-      reale(0x31282b2LL,0x1de2b64LL<<24),reale(-0x19b67d0LL,0x9da8eb8LL<<24),
-      reale(0x851a0eLL,0x6394a4cLL<<24),reale(-0x13d659LL,0xb39ec4fcLL<<20),
-      reale(0x7f56465c5LL,0x62a1b07dc9473LL),
+      real(1030055LL<<30),real(829418525LL<<26),-real(19924010015LL<<27),
+      reale(9050,10804695LL<<26),-reale(78488,9283787LL<<28),
+      reale(459151,22444081LL<<26),-reale(1962716,17985613LL<<27),
+      reale(6408338,7820523LL<<26),-reale(16395176,1626457LL<<29),
+      reale(33311385,35536325LL<<26),-reale(53946341,7054843LL<<27),
+      reale(69201696,61410431LL<<26),-reale(69012103,3773337LL<<28),
+      reale(51544754,7834329LL<<26),-reale(26961871,12889641LL<<27),
+      reale(8722958,26104467LL<<26),-reale(1300056,320360129LL<<22),
+      reale(34181768645LL,0x62a1b07dc9473LL),
       // C4[12], coeff of eps^12, polynomial in n of order 17
-      real(127075LL<<24),real(91195LL<<28),real(0x19a7ffdLL<<24),
-      real(0x554e98faLL<<24),-real(0x1104c06029LL<<24),
-      reale(4440LL,0x88ff8c4LL<<24),reale(-41520LL,0xff11071LL<<24),
-      reale(264211LL,0xd76518eLL<<24),reale(-0x12f2c4LL,0x5871a4bLL<<24),
-      reale(0x44e724LL,0x8fd71d8LL<<24),reale(-0xc76bc0LL,0x713de5LL<<24),
-      reale(0x1d336f4LL,0xf6bb822LL<<24),reale(-0x37d345cLL,0x284e3bfLL<<24),
-      reale(0x56f84c4LL,0xf9cc2ecLL<<24),reale(-0x6cb65f7LL,0xc7c0c59LL<<24),
-      reale(0x67fc5b3LL,0xdcc20b6LL<<24),reale(-0x40789f0LL,0x7c40033LL<<24),
-      reale(0x11fa400LL,0x5381d7baLL<<20),
-      reale(0x17e02d3150LL,0x27e511795bd59LL),
+      real(127075LL<<24),real(91195LL<<28),real(26902525LL<<24),
+      real(715607165LL<<25),-real(73094160425LL<<24),
+      reale(4440,35913265LL<<26),-reale(41519,978831LL<<24),
+      reale(264211,112928967LL<<25),-reale(1241795,175695285LL<<24),
+      reale(4515620,18853435LL<<27),-reale(13069247,261014043LL<<24),
+      reale(30619380,129358865LL<<25),-reale(58537051,226171969LL<<24),
+      reale(91194564,65482939LL<<26),-reale(113993206,58979239LL<<24),
+      reale(109036979,115740763LL<<25),-reale(67602927,138149837LL<<24),
+      reale(18850816,700509149LL<<21),reale(102545305936LL,0x27e511795bd59LL),
       // C4[13], coeff of eps^29, polynomial in n of order 0
-      -real(0x4d6b58LL<<20),reale(3193LL,0x402148867236bLL),
+      -real(634219LL<<23),reale(3193,0x402148867236bLL),
       // C4[13], coeff of eps^28, polynomial in n of order 1
-      -real(400561LL<<32),real(0xd44948LL<<24),
-      reale(66909LL,0xbcc54ee94d445LL),
+      -real(400561LL<<32),real(1739049LL<<27),reale(66909,0xbcc54ee94d445LL),
       // C4[13], coeff of eps^27, polynomial in n of order 2
-      -real(0x2f9823232LL<<28),-real(0xce4e6c05LL<<28),
-      -real(0xb74eeaa93LL<<24),reale(0x110ea712LL,0xcc6f5fc7e64c9LL),
+      -real(6387996953LL<<29),-real(3461245957LL<<28),-real(49206438547LL<<24),
+      reale(286172946,0xcc6f5fc7e64c9LL),
       // C4[13], coeff of eps^26, polynomial in n of order 3
-      real(0x6cba35ba4LL<<28),reale(10661LL,0xb5adc8LL<<28),
-      reale(-6837LL,0x66f24cLL<<28),real(0x301270d076LL<<24),
-      reale(0x35aafaf0LL,0x384bb07b32421LL),
+      real(7296571113LL<<30),reale(10661,1488313LL<<31),
+      -reale(6836,2507629LL<<30),real(103233906747LL<<25),
+      reale(900397808,0x384bb07b32421LL),
       // C4[13], coeff of eps^25, polynomial in n of order 4
-      reale(-0xfb9cbLL,0xa87544LL<<28),reale(976249LL,0x602e67LL<<28),
-      reale(-29215LL,0x22f602LL<<28),reale(-27194LL,0xbd75edLL<<28),
-      reale(-41364LL,0x5dde85bLL<<24),reale(0x898623079LL,0x41f43bb0c949LL),
+      -reale(1030602,1434287LL<<30),reale(976249,6303335LL<<28),
+      -reale(29214,7243007LL<<29),-reale(27193,4360723LL<<28),
+      -reale(41363,170006437LL<<24),reale(36916310137LL,0x41f43bb0c949LL),
       // C4[13], coeff of eps^24, polynomial in n of order 5
-      reale(-0x27a2ffLL,0xf293a8LL<<28),reale(-46367LL,872446LL<<32),
-      real(0x18e85e598LL<<28),reale(754229LL,667751LL<<32),
-      reale(-376196LL,0x85e408LL<<28),reale(33027LL,0xeffa33cLL<<24),
-      reale(0x898623079LL,0x41f43bb0c949LL),
+      -reale(2597630,109963LL<<31),-reale(46366,88065LL<<33),
+      real(835763379LL<<31),reale(754229,667751LL<<32),
+      -reale(376195,1000319LL<<31),reale(33027,62908623LL<<26),
+      reale(36916310137LL,0x41f43bb0c949LL),
       // C4[13], coeff of eps^23, polynomial in n of order 6
-      reale(0x1d1c37LL,0xe5435aLL<<28),reale(-0x142e2cLL,0x65e4cfLL<<28),
-      reale(-0x691fb5LL,0x5612fcLL<<28),reale(0x366a97LL,0xb81689LL<<28),
-      reale(392016LL,0x32e81eLL<<28),reale(-16025LL,0x6c5463LL<<28),
-      reale(-223531LL,0xd348095LL<<24),reale(0x19c926916bLL,0xc5dcb3125bdbLL),
+      reale(1907767,7512493LL<<29),-reale(1322539,10099505LL<<28),
+      -reale(6889396,2784065LL<<30),reale(3566231,12064393LL<<28),
+      reale(392016,1668111LL<<29),-reale(16024,9677725LL<<28),
+      -reale(223530,46890859LL<<24),reale(110748930411LL,0xc5dcb3125bdbLL),
       // C4[13], coeff of eps^22, polynomial in n of order 7
-      reale(0x2a3fb3LL,0x5da06cLL<<28),reale(0x11d140fLL,0x8050a8LL<<28),
-      reale(-0x7980cbLL,0x822dc4LL<<28),reale(-0x2de785LL,546991LL<<32),
-      reale(-0x15a8e5LL,0xe6db5cLL<<28),reale(0x3d8d4bLL,0x939238LL<<28),
-      reale(-0x171002LL,0xfa02b4LL<<28),reale(90538LL,0xdce22caLL<<24),
-      reale(0x19c926916bLL,0xc5dcb3125bdbLL),
+      reale(2768819,1533979LL<<30),reale(18682895,1051157LL<<31),
+      -reale(7962826,2061455LL<<30),-reale(3008388,501585LL<<32),
+      -reale(1419492,411945LL<<30),reale(4033867,1208903LL<<31),
+      -reale(1511425,98131LL<<30),reale(90538,115806565LL<<25),
+      reale(110748930411LL,0xc5dcb3125bdbLL),
       // C4[13], coeff of eps^21, polynomial in n of order 8
-      reale(-0x30f441dLL,0xe5dcc8LL<<28),reale(0x73a875LL,0x301eb3LL<<28),
-      reale(0xbe5c31LL,0x328736LL<<28),reale(0x6ae3f9LL,0x5033a9LL<<28),
-      reale(-0xd0bcdaLL,0xf8b964LL<<28),reale(0x2e08cdLL,0x4521bfLL<<28),
-      reale(0x143398LL,0x3dc612LL<<28),reale(284896LL,0x69abb5LL<<28),
-      reale(-424637LL,0x7bbed23LL<<24),reale(0x19c926916bLL,0xc5dcb3125bdbLL),
+      -reale(51332124,214119LL<<31),reale(7579765,3153587LL<<28),
+      reale(12475441,1655707LL<<29),reale(7005177,5256105LL<<28),
+      -reale(13679833,119207LL<<30),reale(3016909,4530623LL<<28),
+      reale(1323928,2024201LL<<29),reale(284896,6925237LL<<28),
+      -reale(424636,138679005LL<<24),reale(110748930411LL,0xc5dcb3125bdbLL),
       // C4[13], coeff of eps^20, polynomial in n of order 9
-      reale(0x2d0fd17LL,14679LL<<32),reale(-0x119e016LL,547976LL<<32),
-      reale(-0x287e1b8LL,154713LL<<32),reale(0x1fc3b91LL,213302LL<<32),
-      reale(0x2eb440LL,842635LL<<32),reale(-0x598815LL,637892LL<<32),
-      reale(-0x69ec2eLL,199245LL<<32),reale(0x6fc4acLL,847762LL<<32),
-      reale(-0x1dcd86LL,277503LL<<32),reale(46148LL,0xd99f1c8LL<<24),
-      reale(0x19c926916bLL,0xc5dcb3125bdbLL),
+      reale(47250711,14679LL<<32),-reale(18472981,62575LL<<35),
+      -reale(42459575,893863LL<<32),reale(33307537,106651LL<<33),
+      reale(3060800,842635LL<<32),-reale(5867540,102671LL<<34),
+      -reale(6941741,849331LL<<32),reale(7324844,423881LL<<33),
+      -reale(1953157,771073LL<<32),reale(46148,28524089LL<<27),
+      reale(110748930411LL,0xc5dcb3125bdbLL),
       // C4[13], coeff of eps^19, polynomial in n of order 10
-      reale(-0xd0cfcabLL,0x2be4e58LL<<24),reale(0x8a3b875LL,0x8b11e6cLL<<24),
-      reale(-0x2602eeLL,0xfc0ffeLL<<28),reale(-0x29b84eeLL,0x33a9454LL<<24),
-      reale(-0x529e72LL,0x33fd68LL<<24),reale(0x24b1568LL,0x965ecbcLL<<24),
-      reale(-0x12be25fLL,0xc8233fLL<<28),reale(-0x1f0063LL,0xe0954a4LL<<24),
-      reale(0x266a40LL,0xed09078LL<<24),reale(0x15ded3LL,0x1f1f90cLL<<24),
-      reale(-884986LL,0x26990b14LL<<20),reale(0x19c926916bLL,0xc5dcb3125bdbLL),
+      -reale(218954922,27801141LL<<27),reale(144947317,36456347LL<<26),
+      -reale(2491117,129025LL<<29),-reale(43746541,53566187LL<<26),
+      -reale(5414513,33128531LL<<27),reale(38475112,39418671LL<<26),
+      -reale(19653214,3660993LL<<28),-reale(2031714,8235735LL<<26),
+      reale(2517568,31068687LL<<27),reale(1433299,8158787LL<<26),
+      -reale(884985,911850811LL<<22),reale(110748930411LL,0xc5dcb3125bdbLL),
       // C4[13], coeff of eps^18, polynomial in n of order 11
-      reale(0xb221aadLL,0xa08cddLL<<28),reale(-0x6bd20aLL,0x43a712LL<<28),
-      reale(-0xa0e4bdeLL,0xfd91dfLL<<28),reale(0xbe849c5LL,0xf3dc68LL<<28),
-      reale(-0x56c8e4fLL,0xa78dd1LL<<28),reale(-0xfa0633LL,0x952d3eLL<<28),
-      reale(0x1b823cdLL,0x1249d3LL<<28),reale(0x9152c8LL,0xf3d2b4LL<<28),
-      reale(-0x17c45a9LL,0x928f05LL<<28),reale(0xc528a5LL,0x3f05eaLL<<28),
-      reale(-0x209d63LL,0x542687LL<<28),reale(-100774LL,0xd5026cf8LL<<20),
-      reale(0x19c926916bLL,0xc5dcb3125bdbLL),
+      reale(186784429,10521821LL<<28),-reale(7066121,6171767LL<<29),
+      -reale(168709085,159265LL<<28),reale(199772613,1997709LL<<31),
+      -reale(91000398,5796399LL<<28),-reale(16385586,3500385LL<<29),
+      reale(28845005,1198547LL<<28),reale(9523912,3994797LL<<30),
+      -reale(24921512,7172347LL<<28),reale(12920997,2065141LL<<29),
+      -reale(2137442,11262329LL<<28),-reale(100773,90157665LL<<23),
+      reale(110748930411LL,0xc5dcb3125bdbLL),
       // C4[13], coeff of eps^17, polynomial in n of order 12
-      reale(0x91ed1dbLL,0x9d0afbLL<<28),reale(-0xdb1a910LL,0x98d5fdcLL<<24),
-      reale(0xe2547e2LL,0x6ca25e8LL<<24),reale(-0x79fc232LL,0xdca4434LL<<24),
-      reale(-0x3238c29LL,0xaa31d2LL<<28),reale(0xaa2ec45LL,0xb75a30cLL<<24),
-      reale(-0x9f2b078LL,0xa894858LL<<24),reale(0x40b9fe4LL,0x5f2ef64LL<<24),
-      reale(0x6fcb94LL,206249LL<<28),reale(-0xfcd517LL,0x6989c3cLL<<24),
-      reale(-550003LL,0x59a06c8LL<<24),reale(0x5f512bLL,0xee61c94LL<<24),
-      reale(-0x21de42LL,0x4de5110cLL<<20),
-      reale(0x19c926916bLL,0xc5dcb3125bdbLL),
+      reale(153014747,10291963LL<<28),-reale(229746959,27043849LL<<26),
+      reale(237324258,14238909LL<<27),-reale(127910449,9268979LL<<26),
+      -reale(52661288,2811671LL<<29),reale(178449477,48064707LL<<26),
+      -reale(166899831,11458293LL<<27),reale(67870692,24951769LL<<26),
+      reale(7326612,206249LL<<28),-reale(16569622,39442673LL<<26),
+      -reale(550002,21806887LL<<27),reale(6246699,62490405LL<<26),
+      -reale(2219585,747027389LL<<22),reale(110748930411LL,0xc5dcb3125bdbLL),
       // C4[13], coeff of eps^16, polynomial in n of order 13
-      reale(0xe71866LL,0x5f0d1eLL<<28),reale(-0x2b5de68LL,0xf74378LL<<28),
-      reale(0x6373082LL,0x7b6232LL<<28),reale(-0xae3a66bLL,0x3d3344LL<<28),
-      reale(0xe3c0167LL,0x8350a6LL<<28),reale(-0xcd733a9LL,361797LL<<32),
-      reale(0x5b368faLL,0x7f483aLL<<28),reale(0x37cac0cLL,0x35365cLL<<28),
-      reale(-0x8e1b223LL,0x43b8aeLL<<28),reale(0x81a19c1LL,0x886928LL<<28),
-      reale(-0x4197ae1LL,0xf911c2LL<<28),reale(0x1039cd4LL,0xe47c74LL<<28),
-      reale(-171459LL,0x5bc336LL<<28),reale(-594748LL,0xd64d235LL<<24),
-      reale(0x19c926916bLL,0xc5dcb3125bdbLL),
+      reale(15145062,3114639LL<<29),-reale(45473383,71569LL<<31),
+      reale(104280194,4043033LL<<29),-reale(182691434,3191599LL<<30),
+      reale(238813543,4302931LL<<29),-reale(215430056,686779LL<<32),
+      reale(95643898,4170781LL<<29),reale(58502156,871831LL<<30),
+      -reale(149008930,6169513LL<<29),reale(135928257,1117477LL<<31),
+      -reale(68778720,227103LL<<29),reale(17013972,3743517LL<<30),
+      -reale(171458,5381733LL<<29),-reale(594747,43724235LL<<24),
+      reale(110748930411LL,0xc5dcb3125bdbLL),
       // C4[13], coeff of eps^15, polynomial in n of order 14
-      reale(268265LL,0x6119c38LL<<24),reale(-0x18669bLL,0xbe43aa4LL<<24),
-      reale(0x69edfcLL,0x4a8473LL<<28),reale(-0x15da4fcLL,0xb1d233cLL<<24),
-      reale(0x38272ddLL,0x3d1f028LL<<24),reale(-0x71792d8LL,0xe18ff54LL<<24),
-      reale(0xb3db205LL,0x7bbc22LL<<28),reale(-0xdb1e472LL,0x795b9ecLL<<24),
-      reale(0xc1bcdb4LL,0xeece818LL<<24),reale(-0x66690f6LL,0x3363e04LL<<24),
-      reale(-0x65f027LL,0xdb48d1LL<<28),reale(0x47cb5dcLL,0x208769cLL<<24),
-      reale(-0x4a081fcLL,0x97dc08LL<<24),reale(0x2814effLL,0x82b4eb4LL<<24),
-      reale(-0x9b0889LL,0xf7a5c5ecLL<<20),
-      reale(0x19c926916bLL,0xc5dcb3125bdbLL),
+      reale(268265,12727175LL<<27),-reale(1599130,17232215LL<<26),
+      reale(6942204,4883571LL<<28),-reale(22914299,20494129LL<<26),
+      reale(58880733,8011269LL<<27),-reale(118985431,7979051LL<<26),
+      reale(188592645,4054545LL<<29),-reale(229762161,35295621LL<<26),
+      reale(203148724,31300867LL<<27),-reale(107385077,53637247LL<<26),
+      -reale(6680614,2406191LL<<28),reale(75281884,8527271LL<<26),
+      -reale(77627899,32310399LL<<27),reale(42028799,34263981LL<<26),
+      -reale(10160264,35032709LL<<22),reale(110748930411LL,0xc5dcb3125bdbLL),
       // C4[13], coeff of eps^14, polynomial in n of order 15
-      real(0x1f1c0d201LL<<28),reale(-8242LL,0xb3d4f6LL<<28),
-      reale(78008LL,0xc812b3LL<<28),reale(-500801LL,596156LL<<28),
-      reale(0x24145dLL,0x8fcc95LL<<28),reale(-0x8320efLL,0x6e53c2LL<<28),
-      reale(0x17908cbLL,0xae3bc7LL<<28),reale(-0x3677df5LL,242216LL<<28),
-      reale(0x65f9884LL,0x4a9c69LL<<28),reale(-0x9a9a6e4LL,0x66600eLL<<28),
-      reale(0xbc219a2LL,0x832a9bLL<<28),reale(-0xb3fe38dLL,493972LL<<28),
-      reale(0x823d817LL,0xff227dLL<<28),reale(-0x428d074LL,0xe35adaLL<<28),
-      reale(0x152cdf6LL,0x14c02fLL<<28),reale(-0x31e9c6LL,0x9aa84238LL<<20),
-      reale(0x19c926916bLL,0xc5dcb3125bdbLL),
+      real(8350913025LL<<28),-reale(8241,2495877LL<<29),
+      reale(78008,13111987LL<<28),-reale(500800,4045265LL<<30),
+      reale(2364509,9424021LL<<28),-reale(8593646,4773407LL<<29),
+      reale(24709323,11418567LL<<28),-reale(57114100,2066875LL<<31),
+      reale(106928260,4889705LL<<28),-reale(162113251,5033977LL<<29),
+      reale(197269922,8596123LL<<28),-reale(188736396,4070811LL<<30),
+      reale(136566807,16720509LL<<28),-reale(69783667,938643LL<<29),
+      reale(22203894,1359919LL<<28),-reale(3271109,212531129LL<<23),
+      reale(110748930411LL,0xc5dcb3125bdbLL),
       // C4[13], coeff of eps^13, polynomial in n of order 16
-      -real(376740LL<<28),-real(0x148bf72cLL<<24),real(0x46b70c488LL<<24),
-      -real(0x4df9d7d484LL<<24),reale(12668LL,0x17bd05LL<<28),
-      reale(-87923LL,0x676f5a4LL<<24),reale(452934LL,0x95d1e18LL<<24),
-      reale(-0x1bb530LL,0x1269c4cLL<<24),reale(0x590b33LL,0x300a2eLL<<28),
-      reale(-0xe9bd67LL,0xa1e5474LL<<24),reale(0x1fac381LL,0x6f853a8LL<<24),
-      reale(-0x38f491dLL,0x980531cLL<<24),reale(0x549e8f7LL,57943LL<<28),
-      reale(-0x661859aLL,0xae3cd44LL<<24),reale(0x5f49ed3LL,0x5d60d38LL<<24),
-      reale(-0x3a3b665LL,0x46ef7ecLL<<24),reale(0x101e27bLL,0xe0efff34LL<<20),
-      reale(0x19c926916bLL,0xc5dcb3125bdbLL),
+      -real(94185LL<<30),-real(86179275LL<<26),real(2372802705LL<<27),
+      -real(83726038305LL<<26),reale(12668,1555717LL<<28),
+      -reale(87922,39994007LL<<26),reale(452934,19637187LL<<27),
+      -reale(1815855,62281965LL<<26),reale(5835571,1574167LL<<29),
+      -reale(15318374,24668899LL<<26),reale(33211265,14617205LL<<27),
+      -reale(59722012,27257657LL<<26),reale(88729847,57943LL<<28),
+      -reale(107054489,21433519LL<<26),reale(99917523,12239271LL<<27),
+      -reale(61060708,48513541LL<<26),reale(16900731,943456205LL<<22),
+      reale(110748930411LL,0xc5dcb3125bdbLL),
       // C4[14], coeff of eps^29, polynomial in n of order 0
       real(41LL<<28),real(0x3fbc634a12a6b1LL),
       // C4[14], coeff of eps^28, polynomial in n of order 1
-      -real(0x34b26a8LL<<28),-real(0x391d0abLL<<28),
-      reale(0x579206LL,0x909af11944e4bLL),
+      -real(6907093LL<<31),-real(59887787LL<<28),
+      reale(5739014,0x909af11944e4bLL),
       // C4[14], coeff of eps^27, polynomial in n of order 2
-      reale(3432LL,999202LL<<32),-real(0x7c2b19efLL<<32),
-      real(0xcb0c2aebLL<<28),reale(0x12521bbeLL,0xdb94118adae9fLL),
+      reale(3432,499601LL<<33),-real(2083199471LL<<32),real(3406572267LL<<28),
+      reale(307370942,0xdb94118adae9fLL),
       // C4[14], coeff of eps^26, polynomial in n of order 3
-      reale(287986LL,0x83a7b2LL<<28),reale(5344LL,0xddeeccLL<<28),
-      reale(-6206LL,0xa74be6LL<<28),reale(-13965LL,0xd07054cLL<<24),
-      reale(0x313caa90eLL,0xe1def252c54b5LL),
+      reale(287986,4314073LL<<29),reale(5344,3636147LL<<30),
+      -reale(6205,2906637LL<<29),-reale(13964,12467885LL<<26),
+      reale(13216950542LL,0xe1def252c54b5LL),
       // C4[14], coeff of eps^25, polynomial in n of order 4
-      reale(-258062LL,17386LL<<32),reale(-74791LL,0x35a5f8LL<<28),
-      reale(745027LL,493173LL<<32),reale(-337383LL,0xf5a4a8LL<<28),
-      reale(26418LL,0x26e81f8LL<<24),reale(0x93b5ffb2cLL,0xa59cd6f84fe1fLL),
+      -reale(258061,515595LL<<33),-reale(74790,1657665LL<<31),
+      reale(745027,493173LL<<32),-reale(337382,84843LL<<31),
+      reale(26418,5099583LL<<27),reale(39650851628LL,0xa59cd6f84fe1fLL),
       // C4[14], coeff of eps^24, polynomial in n of order 5
-      reale(-100053LL,0x43e1acLL<<28),reale(-0x6aae1bLL,620271LL<<32),
-      reale(0x2c4b57LL,0xd8a434LL<<28),reale(514674LL,0xa13f78LL<<28),
-      reale(32543LL,0xf86ebcLL<<28),reale(-220558LL,0xee833c8LL<<24),
-      reale(0x1bb21ff185LL,0xf0d684e8efa5dLL),
+      -reale(100052,3082133LL<<30),-reale(6991386,428305LL<<32),
+      reale(2902871,3549453LL<<30),reale(514674,1320943LL<<31),
+      reale(32543,4070319LL<<30),-reale(220557,2292103LL<<27),
+      reale(118952554885LL,0xf0d684e8efa5dLL),
       // C4[14], coeff of eps^23, polynomial in n of order 6
-      reale(0x5f5ca1LL,975799LL<<32),reale(-0x1ab5f6LL,0x630288LL<<28),
-      reale(-0x10a466LL,630138LL<<32),reale(-631633LL,0x2404b8LL<<28),
-      reale(0x139d0bLL,761149LL<<32),reale(-440348LL,610024LL<<28),
-      reale(22303LL,0x70a13b8LL<<24),reale(0x93b5ffb2cLL,0xa59cd6f84fe1fLL),
+      reale(6249633,975799LL<<32),-reale(1750517,1286063LL<<31),
+      -reale(1090661,209219LL<<33),-reale(631632,1802089LL<<31),
+      reale(1285387,761149LL<<32),-reale(440347,2020899LL<<31),
+      reale(22303,14762615LL<<27),reale(39650851628LL,0xa59cd6f84fe1fLL),
       // C4[14], coeff of eps^22, polynomial in n of order 7
-      reale(-0x11a1b4LL,0x1f2892LL<<28),reale(0xa93ae1LL,0xc92734LL<<28),
-      reale(0x8faea8LL,0x77afd6LL<<28),reale(-0xbfaf4dLL,0x3af778LL<<28),
-      reale(0x1d134cLL,0xf3db1aLL<<28),reale(0x14346eLL,0x8257bcLL<<28),
-      reale(362851LL,0xbe025eLL<<28),reale(-408796LL,0x50d01bcLL<<24),
-      reale(0x1bb21ff185LL,0xf0d684e8efa5dLL),
+      -reale(1155507,7367607LL<<29),reale(11090657,3295693LL<<30),
+      reale(9416360,3921899LL<<29),-reale(12562252,1614097LL<<31),
+      reale(1905484,7990669LL<<29),reale(1324142,2135535LL<<30),
+      reale(362851,6226223LL<<29),-reale(408795,45924241LL<<26),
+      reale(118952554885LL,0xf0d684e8efa5dLL),
       // C4[14], coeff of eps^21, polynomial in n of order 8
-      reale(-0x2701e9LL,380968LL<<32),reale(-0x2bcc036LL,420131LL<<32),
-      reale(0x1887ec6LL,152606LL<<32),reale(0x6212afLL,738073LL<<32),
-      reale(-0x4410d3LL,731156LL<<32),reale(-0x720d87LL,206095LL<<32),
-      reale(0x6672e6LL,842762LL<<32),reale(-0x1915bdLL,212741LL<<32),
-      reale(21175LL,0x2b1d47LL<<28),reale(0x1bb21ff185LL,0xf0d684e8efa5dLL),
+      -reale(2556392,83451LL<<35),-reale(45924405,628445LL<<32),
+      reale(25722566,76303LL<<33),reale(6427311,738073LL<<32),
+      -reale(4460754,79355LL<<34),-reale(7474566,842481LL<<32),
+      reale(6714086,421381LL<<33),-reale(1643964,835835LL<<32),
+      reale(21175,2825543LL<<28),reale(118952554885LL,0xf0d684e8efa5dLL),
       // C4[14], coeff of eps^20, polynomial in n of order 9
-      reale(0x61143caLL,0x942d58LL<<28),reale(0x1464c3cLL,213324LL<<32),
-      reale(-0x2485570LL,0x9c9c28LL<<28),reale(-0xdfcb44LL,651257LL<<32),
-      reale(0x238e73aLL,0xaa5af8LL<<28),reale(-0xe92526LL,796838LL<<32),
-      reale(-0x306fbbLL,0xcb09c8LL<<28),reale(0x204896LL,458067LL<<32),
-      reale(0x170af0LL,0xc64898LL<<28),reale(-831540LL,0x601d2dLL<<28),
-      reale(0x1bb21ff185LL,0xf0d684e8efa5dLL),
+      reale(101794762,1213867LL<<31),reale(21384252,53331LL<<34),
+      -reale(38294895,814203LL<<31),-reale(14666563,397319LL<<32),
+      reale(37283642,1395551LL<<31),-reale(15279397,125869LL<<33),
+      -reale(3174330,433863LL<<31),reale(2115734,458067LL<<32),
+      reale(1510128,1624339LL<<31),-reale(831539,10478291LL<<28),
+      reale(118952554885LL,0xf0d684e8efa5dLL),
       // C4[14], coeff of eps^19, polynomial in n of order 10
-      reale(0x2ff72acLL,939162LL<<32),reale(-0xb18f798LL,517169LL<<32),
-      reale(0xa69ea51LL,333128LL<<32),reale(-0x38a8f23LL,0xff25fLL<<32),
-      reale(-0x197d6c0LL,460278LL<<32),reale(0x16af76eLL,31373LL<<32),
-      reale(0xca5fc8LL,219812LL<<32),reale(-0x1692bddLL,528571LL<<32),
-      reale(0xaac14bLL,345938LL<<32),reale(-0x197e89LL,805097LL<<32),
-      reale(-115325LL,0x910d63LL<<28),reale(0x1bb21ff185LL,0xf0d684e8efa5dLL),
+      reale(50295468,469581LL<<33),-reale(186185623,531407LL<<32),
+      reale(174713425,41641LL<<35),-reale(59412258,3489LL<<32),
+      -reale(26728127,294149LL<<33),reale(23787374,31373LL<<32),
+      reale(13262792,54953LL<<34),-reale(23669724,520005LL<<32),
+      reale(11190603,172969LL<<33),-reale(1670792,243479LL<<32),
+      -reale(115324,7271069LL<<28),reale(118952554885LL,0xf0d684e8efa5dLL),
       // C4[14], coeff of eps^18, polynomial in n of order 11
-      reale(-0xdb1bc1dLL,0x36339f8LL<<24),reale(0xc39ea0bLL,0xc34dd1LL<<28),
-      reale(-0x4951fdfLL,0xc638828LL<<24),reale(-0x5514b3eLL,0xf4d74LL<<28),
-      reale(0xab30921LL,0xef9c658LL<<24),reale(-0x89bd401LL,0x4fe517LL<<28),
-      reale(0x2e3ad13LL,0xc691488LL<<24),reale(0xc02159LL,0x6e4ebaLL<<28),
-      reale(-0xe1ccbbLL,0x37e92b8LL<<24),reale(-0x1940d4LL,787549LL<<28),
-      reale(0x5bd344LL,0x8c560e8LL<<24),reale(-0x1f0fccLL,0xcab0bcdLL<<24),
-      reale(0x1bb21ff185LL,0xf0d684e8efa5dLL),
+      -reale(229751836,26450113LL<<27),reale(205122059,12799441LL<<28),
+      -reale(76881886,7573243LL<<27),-reale(89213757,3943587LL<<30),
+      reale(179505441,31406283LL<<27),-reale(144430080,11541225LL<<28),
+      reale(48475411,26026641LL<<27),reale(12591449,3614557LL<<29),
+      -reale(14798010,26226089LL<<27),-reale(1654995,15989667LL<<28),
+      reale(6017860,18394141LL<<27),-reale(2035659,55899187LL<<24),
+      reale(118952554885LL,0xf0d684e8efa5dLL),
       // C4[14], coeff of eps^17, polynomial in n of order 12
-      reale(-0x393952cLL,0xccc688LL<<28),reale(0x7498abeLL,0x1b2a12LL<<28),
-      reale(-0xb812d9bLL,0x62221cLL<<28),reale(0xd9c1565LL,0xd2f126LL<<28),
-      reale(-0xae36ab3LL,938907LL<<32),reale(0x36edad6LL,0x562e3aLL<<28),
-      reale(0x4bc1d74LL,0xba8144LL<<28),reale(-0x8b55d1bLL,0x66554eLL<<28),
-      reale(0x740878dLL,0xce6cd8LL<<28),reale(-0x373e3ddLL,0xd9da62LL<<28),
-      reale(0xca1aabLL,0xa3706cLL<<28),reale(250593LL,0x663176LL<<28),
-      reale(-546525LL,0x947e3c2LL<<24),reale(0x1bb21ff185LL,0xf0d684e8efa5dLL),
+      -reale(60003627,419631LL<<31),reale(122260158,890121LL<<29),
+      -reale(193015194,2586489LL<<30),reale(228332901,6912147LL<<29),
+      -reale(182676146,109669LL<<32),reale(57596630,2823965LL<<29),
+      reale(79437172,3055697LL<<30),-reale(146103578,5035353LL<<29),
+      reale(121669517,1691035LL<<31),-reale(57926620,1249999LL<<29),
+      reale(13245099,2677787LL<<30),reale(250593,3348667LL<<29),
+      -reale(546524,56364575LL<<25),reale(118952554885LL,0xf0d684e8efa5dLL),
       // C4[14], coeff of eps^16, polynomial in n of order 13
-      reale(-0x2c674bLL,0x16441bLL<<28),reale(0xa2d3b4LL,677972LL<<28),
-      reale(-0x1d5cb43LL,0xce7a8dLL<<28),reale(0x439464eLL,523846LL<<28),
-      reale(-0x7c884c5LL,0xf092ffLL<<28),reale(0xb655336LL,0x4e7038LL<<28),
-      reale(-0xcebd87fLL,0x380171LL<<28),reale(0xa996f57LL,0xeb522aLL<<28),
-      reale(-0x4ebf5d3LL,0x9b79e3LL<<28),reale(-0x124cae3LL,0x66481cLL<<28),
-      reale(0x4731b81LL,0xaa7055LL<<28),reale(-0x4470075LL,0xf2760eLL<<28),
-      reale(0x2437fe9LL,0x1a98c7LL<<28),reale(-0x8b26e1LL,0x809ec82LL<<24),
-      reale(0x1bb21ff185LL,0xf0d684e8efa5dLL),
+      -reale(2910026,15317989LL<<28),reale(10671028,169493LL<<30),
+      -reale(30788418,3245427LL<<28),reale(70862414,261923LL<<29),
+      -reale(130581700,1010945LL<<28),reale(191189814,642567LL<<31),
+      -reale(216782974,13106831LL<<28),reale(177827671,7710997LL<<29),
+      -reale(82572754,6587933LL<<28),-reale(19188450,2518521LL<<30),
+      reale(74652545,11169877LL<<28),-reale(71762036,443641LL<<29),
+      reale(37978089,1743047LL<<28),-reale(9119456,66783679LL<<25),
+      reale(118952554885LL,0xf0d684e8efa5dLL),
       // C4[14], coeff of eps^15, polynomial in n of order 14
-      reale(-25314LL,0xe334b4LL<<28),reale(176943LL,0x89989eLL<<28),
-      reale(-914489LL,0x4ae808LL<<28),reale(0x37dcdfLL,0xf54972LL<<28),
-      reale(-0xb24506LL,0x24235cLL<<28),reale(0x1cda16dLL,0xde0c46LL<<28),
-      reale(-0x3d3da1bLL,323499LL<<32),reale(0x6af05e8LL,0x3df51aLL<<28),
-      reale(-0x992eda1LL,0x958204LL<<28),reale(0xb210586LL,0x4217eeLL<<28),
-      reale(-0xa44e042LL,642392LL<<28),reale(0x73a1795LL,0xd488c2LL<<28),
-      reale(-0x39e2728LL,0xe3f0acLL<<28),reale(0x1226765LL,0x365b96LL<<28),
-      reale(-0x2a59bfLL,0x3d67fa2LL<<24),
-      reale(0x1bb21ff185LL,0xf0d684e8efa5dLL),
+      -reale(25313,471763LL<<30),reale(176943,4508751LL<<29),
+      -reale(914488,1483519LL<<31),reale(3661023,8037561LL<<29),
+      -reale(11683077,3602217LL<<30),reale(30253421,7276067LL<<29),
+      -reale(64215578,725077LL<<32),reale(112133608,2030221LL<<29),
+      -reale(160624032,1744767LL<<30),reale(186713478,2165751LL<<29),
+      -reale(172286017,2016853LL<<31),reale(121247637,6964321LL<<29),
+      -reale(60696359,459733LL<<30),reale(19031909,1781195LL<<29),
+      -reale(2775486,102023215LL<<25),reale(118952554885LL,0xf0d684e8efa5dLL),
       // C4[14], coeff of eps^14, polynomial in n of order 15
-      -real(0x1250b2e28LL<<24),real(0x15b951553LL<<28),
-      reale(-3809LL,0x7d8f088LL<<24),reale(28626LL,0x9961feLL<<28),
-      reale(-160362LL,0x853f38LL<<24),reale(702411LL,0xec72a9LL<<28),
-      reale(-0x25d7b7LL,0x97bdde8LL<<24),reale(0x6de23fLL,0x2af154LL<<28),
-      reale(-0x109d261LL,0xa90ec98LL<<24),reale(0x21ba361LL,0x6947ffLL<<28),
-      reale(-0x398cfadLL,0xafe8b48LL<<24),reale(0x5212828LL,0xeee0aaLL<<28),
-      reale(-0x60064c0LL,0xbf8d9f8LL<<24),reale(0x57b9e69LL,0x316555LL<<28),
-      reale(-0x34f02e8LL,0xcc1f8a8LL<<24),reale(0xe8ed99LL,0x2e44205LL<<24),
-      reale(0x1bb21ff185LL,0xf0d684e8efa5dLL),
+      -real(614557125LL<<27),real(5831464275LL<<28),
+      -reale(3808,17097199LL<<27),reale(28626,5026047LL<<29),
+      -reale(160361,32462873LL<<27),reale(702411,15495849LL<<28),
+      -reale(2480054,13665347LL<<27),reale(7201343,703573LL<<30),
+      -reale(17420896,11395693LL<<27),reale(35365729,6899711LL<<28),
+      -reale(60346284,10497687LL<<27),reale(86059048,7827541LL<<29),
+      -reale(100689087,8447169LL<<27),reale(91987561,3237205LL<<28),
+      -reale(55509735,6799595LL<<27),reale(15265177,48513541LL<<24),
+      reale(118952554885LL,0xf0d684e8efa5dLL),
       // C4[15], coeff of eps^29, polynomial in n of order 0
-      -real(204761LL<<28),reale(20426LL,0xaa7b82b97d24fLL),
+      -real(204761LL<<28),reale(20426,0xaa7b82b97d24fLL),
       // C4[15], coeff of eps^28, polynomial in n of order 1
-      -real(138796LL<<40),real(0x326231aLL<<28),
-      reale(0x5d9c18LL,0xac3bb24726559LL),
+      -real(34699LL<<42),real(26415501LL<<29),reale(6134808,0xac3bb24726559LL),
       // C4[15], coeff of eps^27, polynomial in n of order 2
-      reale(16894LL,439LL<<40),reale(-3397LL,43380LL<<36),
-      reale(-13998LL,0x90b723LL<<28),reale(0x34a1f41f5LL,0x6d08ce11dbba7LL),
+      reale(16894,439LL<<40),-reale(3396,5539LL<<38),
+      -reale(13997,7293149LL<<28),reale(14128464373LL,0x6d08ce11dbba7LL),
       // C4[15], coeff of eps^26, polynomial in n of order 3
-      reale(-50644LL,2047LL<<36),reale(243167LL,17106LL<<36),
-      reale(-100840LL,62069LL<<36),reale(7018LL,0x217e14LL<<28),
-      reale(0x34a1f41f5LL,0x6d08ce11dbba7LL),
+      -reale(50643,63489LL<<36),reale(243167,8553LL<<37),
+      -reale(100839,3467LL<<36),reale(7018,548741LL<<30),
+      reale(14128464373LL,0x6d08ce11dbba7LL),
       // C4[15], coeff of eps^25, polynomial in n of order 4
-      reale(-0x696616LL,44157LL<<36),reale(0x231c8fLL,795724LL<<32),
-      reale(591806LL,263784LL<<32),reale(76262LL,153156LL<<32),
-      reale(-216245LL,0x4a29a78LL<<24),reale(0x1d9b1951a0LL,0xd54f3ea0b98dfLL),
+      -reale(6907413,21379LL<<36),reale(2301071,198931LL<<34),
+      reale(591806,32973LL<<35),reale(76262,38289LL<<34),
+      -reale(216244,23833777LL<<27),reale(127156179360LL,0xd54f3ea0b98dfLL),
       // C4[15], coeff of eps^24, polynomial in n of order 5
-      reale(-0x2bc894LL,13015LL<<36),reale(-0x31ae6aLL,30260LL<<36),
-      reale(-0x2328a1LL,31713LL<<36),reale(0x37dee4LL,56522LL<<36),
-      reale(-0x11a172LL,47323LL<<36),reale(48366LL,0xcfa39dLL<<28),
-      reale(0x1d9b1951a0LL,0xd54f3ea0b98dfLL),
+      -reale(2869395,52521LL<<36),-reale(3255913,8819LL<<38),
+      -reale(2304160,33823LL<<36),reale(3661540,28261LL<<37),
+      -reale(1155441,18213LL<<36),reale(48366,13607837LL<<28),
+      reale(127156179360LL,0xd54f3ea0b98dfLL),
       // C4[15], coeff of eps^23, polynomial in n of order 6
-      reale(0x85956bLL,883480LL<<32),reale(0xab2f27LL,998436LL<<32),
-      reale(-0xac655eLL,34449LL<<36),reale(996220LL,779132LL<<32),
-      reale(0x137773LL,333064LL<<32),reale(426630LL,382292LL<<32),
-      reale(-392369LL,0x6af8038LL<<24),reale(0x1d9b1951a0LL,0xd54f3ea0b98dfLL),
+      reale(8754539,110435LL<<35),reale(11218727,249609LL<<34),
+      -reale(11298141,31087LL<<36),reale(996220,194783LL<<34),
+      reale(1275763,41633LL<<35),reale(426630,95573LL<<34),
+      -reale(392368,19533817LL<<27),reale(127156179360LL,0xd54f3ea0b98dfLL),
       // C4[15], coeff of eps^22, polynomial in n of order 7
-      reale(-0x2be3634LL,63929LL<<36),reale(0x11a0acaLL,62242LL<<36),
-      reale(0x8267bfLL,40923LL<<36),reale(-0x2d5adcLL,48428LL<<36),
-      reale(-0x77040fLL,16221LL<<36),reale(0x5d908bLL,18102LL<<36),
-      reale(-0x15246bLL,5247LL<<36),reale(2743LL,0xcd40fcLL<<28),
-      reale(0x1d9b1951a0LL,0xd54f3ea0b98dfLL),
+      -reale(46020147,1607LL<<36),reale(18483914,31121LL<<37),
+      reale(8546239,40923LL<<36),-reale(2972379,4277LL<<38),
+      -reale(7799822,49315LL<<36),reale(6131851,9051LL<<37),
+      -reale(1385578,60289LL<<36),reale(2743,3362879LL<<30),
+      reale(127156179360LL,0xd54f3ea0b98dfLL),
       // C4[15], coeff of eps^21, polynomial in n of order 8
-      reale(0x225b4b6LL,1303LL<<40),reale(-0x1cbc393LL,13350LL<<36),
-      reale(-0x14d2d95LL,3700LL<<36),reale(0x21675efLL,63346LL<<36),
-      reale(-0xaeeed7LL,19896LL<<36),reale(-0x3ba146LL,41246LL<<36),
-      reale(0x1a46eaLL,5756LL<<36),reale(0x17c59cLL,37738LL<<36),
-      reale(-781447LL,0x9ea11dLL<<28),reale(0x1d9b1951a0LL,0xd54f3ea0b98dfLL),
+      reale(36025526,1303LL<<40),-reale(30131090,26093LL<<37),
+      -reale(21835156,15459LL<<38),reale(35026415,31673LL<<37),
+      -reale(11464406,5705LL<<39),-reale(3907909,12145LL<<37),
+      reale(1722090,1439LL<<38),reale(1557916,18869LL<<37),
+      -reale(781446,6381283LL<<28),reale(127156179360LL,0xd54f3ea0b98dfLL),
       // C4[15], coeff of eps^20, polynomial in n of order 9
-      reale(-0xb572bceLL,1709LL<<40),reale(0x8c2fc3fLL,2454LL<<40),
-      reale(-0x2004b39LL,555LL<<40),reale(-0x1ecc80bLL,49000LL<<36),
-      reale(0x117b62cLL,2115LL<<40),reale(0xf47d0aLL,2331LL<<40),
-      reale(-0x15375bfLL,713LL<<40),reale(0x93f00aLL,33144LL<<36),
-      reale(-0x13df21LL,1425LL<<40),reale(-123236LL,0x55cd8aLL<<28),
-      reale(0x1d9b1951a0LL,0xd54f3ea0b98dfLL),
+      -reale(190262221,2387LL<<40),reale(146996287,1227LL<<41),
+      -reale(33573688,3541LL<<40),-reale(32294922,2067LL<<39),
+      reale(18331180,2115LL<<40),reale(16022794,2331LL<<40),
+      -reale(22246846,3383LL<<40),reale(9695242,4143LL<<39),
+      -reale(1302304,2671LL<<40),-reale(123235,5577019LL<<29),
+      reale(127156179360LL,0xd54f3ea0b98dfLL),
       // C4[15], coeff of eps^19, polynomial in n of order 10
-      reale(0xa139d64LL,19274LL<<36),reale(-0x1e0e28cLL,48441LL<<36),
-      reale(-0x6dca60bLL,6664LL<<36),reale(0xa5ff4ecLL,58071LL<<36),
-      reale(-0x752bcc7LL,25286LL<<36),reale(0x1f5b6d1LL,12981LL<<36),
-      reale(0xf1749aLL,2820LL<<36),reale(-0xc581edLL,8531LL<<36),
-      reale(-0x267c92LL,20546LL<<36),reale(0x581034LL,18225LL<<36),
-      reale(-0x1c95bbLL,0x8a4991LL<<28),
-      reale(0x1d9b1951a0LL,0xd54f3ea0b98dfLL),
+      reale(169057636,9637LL<<37),-reale(31515275,17095LL<<36),
+      -reale(115123722,7359LL<<39),reale(174060780,58071LL<<36),
+      -reale(122862790,20125LL<<37),reale(32880337,12981LL<<36),
+      reale(15824026,705LL<<38),-reale(12943852,57005LL<<36),
+      -reale(2522257,22495LL<<37),reale(5771316,18225LL<<36),
+      -reale(1873338,7714415LL<<28),reale(127156179360LL,0xd54f3ea0b98dfLL),
       // C4[15], coeff of eps^18, polynomial in n of order 11
-      reale(0x82fd346LL,26079LL<<36),reale(-0xbc8bfb1LL,11754LL<<36),
-      reale(0xcb41663LL,51077LL<<36),reale(-0x8f7dc15LL,40456LL<<36),
-      reale(0x184463dLL,34251LL<<36),reale(0x599bf98LL,23334LL<<36),
-      reale(-0x863675dLL,41329LL<<36),reale(0x6795265LL,25092LL<<36),
-      reale(-0x2ea83acLL,2871LL<<36),reale(0x9d6c86LL,3938LL<<36),
-      reale(535285LL,33757LL<<36),reale(-501187LL,0x339d14LL<<28),
-      reale(0x1d9b1951a0LL,0xd54f3ea0b98dfLL),
+      reale(137352006,26079LL<<36),-reale(197705648,26891LL<<37),
+      reale(213128803,51077LL<<36),-reale(150461460,3135LL<<39),
+      reale(25445949,34251LL<<36),reale(93962136,11667LL<<37),
+      -reale(140732252,24207LL<<36),reale(108614245,6273LL<<38),
+      -reale(48923563,62665LL<<36),reale(10316934,1969LL<<37),
+      reale(535285,33757LL<<36),-reale(501186,3348667LL<<30),
+      reale(127156179360LL,0xd54f3ea0b98dfLL),
       // C4[15], coeff of eps^17, polynomial in n of order 12
-      reale(0xe74261LL,820196LL<<32),reale(-0x254ae1fLL,91461LL<<32),
-      reale(0x4e2b86cLL,279198LL<<32),reale(-0x8501d8dLL,54663LL<<32),
-      reale(0xb5983e4LL,492696LL<<32),reale(-0xc0f0741LL,81129LL<<32),
-      reale(0x9349116LL,806802LL<<32),reale(-0x3aebfbdLL,159531LL<<32),
-      reale(-0x1b2f350LL,780620LL<<32),reale(0x45be7e6LL,0xfb80dLL<<32),
-      reale(-0x3f5d44bLL,460678LL<<32),reale(0x20e7862LL,346959LL<<32),
-      reale(-0x7dbe5bLL,0xa56536LL<<24),
-      reale(0x1d9b1951a0LL,0xd54f3ea0b98dfLL),
+      reale(15155809,205049LL<<34),-reale(39104030,957115LL<<32),
+      reale(81967212,139599LL<<33),-reale(139468172,993913LL<<32),
+      reale(190415844,61587LL<<35),-reale(202311488,967447LL<<32),
+      reale(154439958,403401LL<<33),-reale(61783996,889045LL<<32),
+      -reale(28504911,66989LL<<34),reale(73132006,1030157LL<<32),
+      -reale(66442314,293949LL<<33),reale(34502754,346959LL<<32),
+      -reale(8240730,128798053LL<<25),reale(127156179360LL,0xd54f3ea0b98dfLL),
       // C4[15], coeff of eps^16, polynomial in n of order 13
-      reale(114172LL,570308LL<<32),reale(-499142LL,32417LL<<36),
-      reale(0x1ab452LL,696732LL<<32),reale(-0x4c8a22LL,130808LL<<32),
-      reale(0xb5790eLL,264884LL<<32),reale(-0x166233eLL,27350LL<<36),
-      reale(0x24cdc67LL,752524LL<<32),reale(-0x322d0b6LL,526792LL<<32),
-      reale(0x3808311LL,557220LL<<32),reale(-0x3214733LL,41611LL<<36),
-      reale(0x2263a42LL,632444LL<<32),reale(-0x10e7aeaLL,302744LL<<32),
-      reale(0x53b854LL,555412LL<<32),reale(-792997LL,0xc866d9cLL<<24),
-      reale(0x9de5dc5e0LL,0x471a6a35932f5LL),
+      reale(114172,142577LL<<34),-reale(499141,33119LL<<36),
+      reale(1750098,174183LL<<34),-reale(5016097,114721LL<<35),
+      reale(11893006,66221LL<<34),-reale(23470909,19093LL<<37),
+      reale(38591591,188131LL<<34),-reale(52613301,65223LL<<35),
+      reale(58753809,139305LL<<34),-reale(52512562,23925LL<<36),
+      reale(36059714,158111LL<<34),-reale(17726185,93229LL<<35),
+      reale(5486676,138853LL<<34),-reale(792996,14574745LL<<26),
+      reale(42385393120LL,0x471a6a35932f5LL),
       // C4[15], coeff of eps^15, polynomial in n of order 14
-      real(0x46a7f53aLL<<32),reale(-9148LL,209563LL<<32),
-      reale(55355LL,963460LL<<32),reale(-262941LL,404301LL<<32),
-      reale(0xf6e6eLL,58190LL<<32),reale(-0x31125eLL,24671LL<<32),
-      reale(0x82dba5LL,283736LL<<32),reale(-0x1274a99LL,718737LL<<32),
-      reale(0x2367a33LL,910946LL<<32),reale(-0x39b9ab9LL,269987LL<<32),
-      reale(0x4f6e12fLL,375084LL<<32),reale(-0x5a76405LL,883541LL<<32),
-      reale(0x511a91eLL,220278LL<<32),reale(-0x306690eLL,105319LL<<32),
-      reale(0xd3c0b9LL,0xccf81d6LL<<24),
-      reale(0x1d9b1951a0LL,0xd54f3ea0b98dfLL),
+      real(592706205LL<<33),-reale(9147,839013LL<<32),
+      reale(55355,240865LL<<34),-reale(262940,644275LL<<32),
+      reale(1011310,29095LL<<33),-reale(3215965,1023905LL<<32),
+      reale(8575909,35467LL<<35),-reale(19352216,329839LL<<32),
+      reale(37124659,455473LL<<33),-reale(60529336,778589LL<<32),
+      reale(83288367,93771LL<<34),-reale(94856196,165035LL<<32),
+      reale(85043486,110139LL<<33),-reale(50751757,943257LL<<32),
+      reale(13877433,107462891LL<<25),reale(127156179360LL,0xd54f3ea0b98dfLL),
       // C4[16], coeff of eps^29, polynomial in n of order 0
-      real(4424LL<<28),real(0x292ecb9a960d27d1LL),
+      real(553LL<<31),real(0x292ecb9a960d27d1LL),
       // C4[16], coeff of eps^28, polynomial in n of order 1
-      -real(61453LL<<36),-real(0x1223354LL<<32),
-      reale(0x12af280LL,0x57955a5f17535LL),
+      -real(61453LL<<36),-real(4754645LL<<34),
+      reale(19591808,0x57955a5f17535LL),
       // C4[16], coeff of eps^27, polynomial in n of order 2
-      reale(33770LL,14237LL<<36),reale(-12918LL,122440LL<<32),
-      real(0x31a67a9c8LL<<28),reale(0x80108cfaLL,0xda506166fe05fLL),
+      reale(33770,14237LL<<36),-reale(12917,115767LL<<35),
+      real(1665987897LL<<31),reale(2148568314LL,0xda506166fe05fLL),
       // C4[16], coeff of eps^26, polynomial in n of order 3
-      reale(0x1aefe7LL,9719LL<<36),reale(634098LL,32386LL<<36),
-      reale(114937LL,5021LL<<36),reale(-211036LL,146065LL<<32),
-      reale(0x1f8412b1bbLL,0xb9c7f85883761LL),
+      reale(1765351,9719LL<<36),reale(634098,16193LL<<37),
+      reale(114937,5021LL<<36),-reale(211035,902511LL<<32),
+      reale(135359803835LL,0xb9c7f85883761LL),
       // C4[16], coeff of eps^25, polynomial in n of order 4
-      reale(-0x2e6a1aLL,42466LL<<36),reale(-0x285574LL,539320LL<<32),
-      reale(0x34c58bLL,225LL<<36),reale(-0xf6ed0LL,814568LL<<32),
-      reale(33755LL,0x2b54a8LL<<28),reale(0x1f8412b1bbLL,0xb9c7f85883761LL),
+      -reale(3041817,11535LL<<37),-reale(2643315,63657LL<<35),
+      reale(3458443,225LL<<36),-reale(1011407,29251LL<<35),
+      reale(33755,354965LL<<31),reale(135359803835LL,0xb9c7f85883761LL),
       // C4[16], coeff of eps^24, polynomial in n of order 5
-      reale(0xbde12aLL,894776LL<<32),reale(-0x9842b4LL,18214LL<<36),
-      reale(264818LL,197512LL<<32),reale(0x124032LL,9587LL<<36),
-      reale(477961LL,138712LL<<32),reale(-375863LL,804917LL<<32),
-      reale(0x1f8412b1bbLL,0xb9c7f85883761LL),
+      reale(12443946,111847LL<<35),-reale(9978547,23661LL<<37),
+      reale(264818,24689LL<<35),reale(1196082,9587LL<<36),
+      reale(477961,17339LL<<35),-reale(375862,243659LL<<32),
+      reale(135359803835LL,0xb9c7f85883761LL),
       // C4[16], coeff of eps^23, polynomial in n of order 6
-      reale(0xb6aa99LL,59849LL<<36),reale(0x93ab1fLL,452760LL<<32),
-      reale(-0x1720c6LL,60902LL<<36),reale(-0x796650LL,147240LL<<32),
-      reale(0x553b28LL,62147LL<<36),reale(-0x11d6bfLL,536248LL<<32),
-      reale(-10841LL,0x50d3f8LL<<28),reale(0x1f8412b1bbLL,0xb9c7f85883761LL),
+      reale(11971225,59849LL<<36),reale(9677599,56595LL<<35),
+      -reale(1515717,2317LL<<37),-reale(7956047,112667LL<<35),
+      reale(5585704,62147LL<<36),-reale(1169086,64041LL<<35),
+      -reale(10840,1435009LL<<31),reale(135359803835LL,0xb9c7f85883761LL),
       // C4[16], coeff of eps^22, polynomial in n of order 7
-      reale(-0x13efe8aLL,18329LL<<36),reale(-0x19c0bfcLL,27906LL<<36),
-      reale(0x1ea3e4aLL,62715LL<<36),reale(-0x7d3b35LL,39788LL<<36),
-      reale(-0x42287eLL,44605LL<<36),reale(0x149df9LL,29526LL<<36),
-      reale(0x182860LL,44703LL<<36),reale(-734820LL,693435LL<<32),
-      reale(0x1f8412b1bbLL,0xb9c7f85883761LL),
+      -reale(20905609,47207LL<<36),-reale(27003899,18815LL<<37),
+      reale(32128586,62715LL<<36),-reale(8207156,6437LL<<38),
+      -reale(4335741,20931LL<<36),reale(1351161,14763LL<<37),
+      reale(1583200,44703LL<<36),-reale(734819,355141LL<<32),
+      reale(135359803835LL,0xb9c7f85883761LL),
       // C4[16], coeff of eps^21, polynomial in n of order 8
-      reale(0x71bef35LL,52964LL<<36),reale(-0xc9306fLL,105496LL<<32),
-      reale(-0x20d47b6LL,52795LL<<36),reale(0xc5ef7aLL,496840LL<<32),
-      reale(0x112054dLL,47858LL<<36),reale(-0x13ca670LL,686712LL<<32),
-      reale(0x8042f9LL,5609LL<<36),reale(-0xf688eLL,375592LL<<32),
-      reale(-126670LL,0x8629a8LL<<28),reale(0x1f8412b1bbLL,0xb9c7f85883761LL),
+      reale(119271221,13241LL<<38),-reale(13185134,117885LL<<35),
+      -reale(34424757,12741LL<<36),reale(12971898,62105LL<<35),
+      reale(17958221,23929LL<<37),-reale(20751983,45233LL<<35),
+      reale(8405753,5609LL<<36),-reale(1009805,84123LL<<35),
+      -reale(126669,998091LL<<31),reale(135359803835LL,0xb9c7f85883761LL),
       // C4[16], coeff of eps^20, polynomial in n of order 9
-      reale(0x6f1d21LL,46177LL<<36),reale(-0x7e03f7bLL,36040LL<<36),
-      reale(0x9ccd64aLL,28463LL<<36),reale(-0x622c9aaLL,38934LL<<36),
-      reale(0x138cd3dLL,15997LL<<36),reale(0x10cb2afLL,57956LL<<36),
-      reale(-0xa9cbb1LL,56139LL<<36),reale(-0x30bcfeLL,1714LL<<36),
-      reale(0x5434b3LL,63129LL<<36),reale(-0x1a6458LL,664724LL<<32),
-      reale(0x1f8412b1bbLL,0xb9c7f85883761LL),
+      reale(7281953,46177LL<<36),-reale(132136826,3687LL<<39),
+      reale(164419146,28463LL<<36),-reale(102943145,13301LL<<37),
+      reale(20499773,15997LL<<36),reale(17609391,14489LL<<38),
+      -reale(11127728,9397LL<<36),-reale(3194109,31911LL<<37),
+      reale(5518515,63129LL<<36),-reale(1729623,95963LL<<34),
+      reale(135359803835LL,0xb9c7f85883761LL),
       // C4[16], coeff of eps^19, polynomial in n of order 10
-      reale(-0xbc507a6LL,53571LL<<36),reale(0xb9cb8adLL,13336LL<<32),
-      reale(-0x7261902LL,61788LL<<36),reale(-0x128369LL,849256LL<<32),
-      reale(0x62b0258LL,52469LL<<36),reale(-0x7fb0789LL,985016LL<<32),
-      reale(0x5c56415LL,36142LL<<36),reale(-0x2783dddLL,72968LL<<32),
-      reale(0x7a756cLL,27431LL<<36),reale(724406LL,0xf6758LL<<32),
-      reale(-459368LL,0x61ea58LL<<28),reale(0x1f8412b1bbLL,0xb9c7f85883761LL),
+      -reale(197461925,11965LL<<36),reale(194820269,1667LL<<35),
+      -reale(119937281,937LL<<38),-reale(1213288,24915LL<<35),
+      reale(103481944,52469LL<<36),-reale(133891976,7945LL<<35),
+      reale(96822293,18071LL<<37),-reale(41434588,121951LL<<35),
+      reale(8025452,27431LL<<36),reale(724406,126187LL<<35),
+      -reale(459367,1295029LL<<31),reale(135359803835LL,0xb9c7f85883761LL),
       // C4[16], coeff of eps^18, polynomial in n of order 11
-      reale(-0x2d52da6LL,2991LL<<36),reale(0x57a1821LL,44906LL<<36),
-      reale(-0x8b074b6LL,45557LL<<36),reale(0xb25424eLL,64008LL<<36),
-      reale(-0xb27b4e2LL,29787LL<<36),reale(0x7efaebeLL,40358LL<<36),
-      reale(-0x2a5e0f6LL,52385LL<<36),reale(-0x21bb9a2LL,25604LL<<36),
-      reale(0x43c3e65LL,38023LL<<36),reale(-0x3ac6c50LL,22242LL<<36),
-      reale(0x1e0a4e5LL,50637LL<<36),reale(-0x724f60LL,290225LL<<32),
-      reale(0x1f8412b1bbLL,0xb9c7f85883761LL),
+      -reale(47525285,62545LL<<36),reale(91887649,22453LL<<37),
+      -reale(145781941,19979LL<<36),reale(186991182,8001LL<<39),
+      -reale(187151585,35749LL<<36),reale(133148350,20179LL<<37),
+      -reale(44425461,13151LL<<36),-reale(35371425,9983LL<<38),
+      reale(71056997,38023LL<<36),-reale(61631567,21647LL<<37),
+      reale(31499493,50637LL<<36),-reale(7491423,758351LL<<32),
+      reale(135359803835LL,0xb9c7f85883761LL),
       // C4[16], coeff of eps^17, polynomial in n of order 12
-      reale(-0x227ab0LL,16142LL<<36),reale(0x6c5265LL,629784LL<<32),
-      reale(-0x11b8c1dLL,56657LL<<36),reale(0x26f5cbcLL,98952LL<<32),
-      reale(-0x482fb20LL,14772LL<<36),reale(0x709c48eLL,679416LL<<32),
-      reale(-0x92fd9b9LL,13463LL<<36),reale(0x9e6c5adLL,595048LL<<32),
-      reale(-0x89a44eaLL,61018LL<<36),reale(0x5c79070LL,789464LL<<32),
-      reale(-0x2cba02fLL,46941LL<<36),reale(0xdaf5c9LL,404040LL<<32),
-      reale(-0x1f6520LL,0x4d2688LL<<28),
-      reale(0x1f8412b1bbLL,0xb9c7f85883761LL),
+      -reale(2259631,24697LL<<37),reale(7098981,78723LL<<35),
+      -reale(18582556,8879LL<<36),reale(40852668,12369LL<<35),
+      -reale(75692831,12691LL<<38),reale(118080654,84927LL<<35),
+      -reale(154130872,52073LL<<36),reale(166118829,74381LL<<35),
+      -reale(144327913,2259LL<<37),reale(96964720,98683LL<<35),
+      -reale(46899246,18595LL<<36),reale(14349769,50505LL<<35),
+      -reale(2057503,1465135LL<<31),reale(135359803835LL,0xb9c7f85883761LL),
       // C4[16], coeff of eps^16, polynomial in n of order 13
-      reale(-18696LL,519966LL<<32),reale(95700LL,66120LL<<32),
-      reale(-398137LL,208882LL<<32),reale(0x14fc95LL,708284LL<<32),
-      reale(-0x3d1bb4LL,188998LL<<32),reale(0x978510LL,13635LL<<36),
-      reale(-0x141fac3LL,584986LL<<32),reale(0x24bf66eLL,208292LL<<32),
-      reale(-0x3992436LL,862062LL<<32),reale(0x4cc3046LL,947736LL<<32),
-      reale(-0x555d496LL,555074LL<<32),reale(0x4b447d3LL,649356LL<<32),
-      reale(-0x2c79ecfLL,521878LL<<32),reale(0xc19a43LL,0x799264LL<<28),
-      reale(0x1f8412b1bbLL,0xb9c7f85883761LL),
+      -reale(18695,264305LL<<33),reale(95700,8265LL<<35),
+      -reale(398136,419847LL<<33),reale(1375381,177071LL<<34),
+      -reale(4004787,429789LL<<33),reale(9930000,13635LL<<36),
+      -reale(21101250,231795LL<<33),reale(38532718,52073LL<<34),
+      -reale(60367925,93257LL<<33),reale(80490566,118467LL<<35),
+      -reale(89511061,246751LL<<33),reale(78923731,162339LL<<34),
+      -reale(46636750,263349LL<<33),reale(12687939,1991833LL<<30),
+      reale(135359803835LL,0xb9c7f85883761LL),
       // C4[17], coeff of eps^29, polynomial in n of order 0
-      -real(0x223858LL<<28),reale(154847LL,0x4e6e7be138cdbLL),
+      -real(280331LL<<31),reale(154847,0x4e6e7be138cdbLL),
       // C4[17], coeff of eps^28, polynomial in n of order 1
-      -real(329724LL<<36),real(284138LL<<32),reale(989485LL,0x4511e2f2b39a3LL),
+      -real(82431LL<<38),real(142069LL<<33),reale(989485,0x4511e2f2b39a3LL),
       // C4[17], coeff of eps^27, polynomial in n of order 2
-      reale(30957LL,2723LL<<36),reale(7080LL,304568LL<<32),
-      reale(-9774LL,884536LL<<28),reale(0x1977a7ac1LL,0x13b9f01928417LL),
+      reale(30957,2723LL<<36),reale(7080,38071LL<<35),
+      -reale(9773,1986585LL<<31),reale(6836353729LL,0x13b9f01928417LL),
       // C4[17], coeff of eps^26, polynomial in n of order 3
-      reale(-138772LL,7966LL<<36),reale(154910LL,57756LL<<36),
-      reale(-42194LL,6314LL<<36),real(0x4216e9dbLL<<32),
-      reale(0x1977a7ac1LL,0x13b9f01928417LL),
+      -reale(138771,28785LL<<37),reale(154910,14439LL<<38),
+      -reale(42193,29611LL<<37),real(1108797915LL<<32),
+      reale(6836353729LL,0x13b9f01928417LL),
       // C4[17], coeff of eps^25, polynomial in n of order 4
-      reale(-0x12e4f1LL,22134LL<<36),reale(-44812LL,400360LL<<32),
-      reale(156785LL,14859LL<<36),reale(74079LL,619256LL<<32),
-      reale(-51373LL,0x7bdc78LL<<28),reale(0x4c66f7043LL,0x3b2dd04b78c45LL),
+      -reale(1238256,21701LL<<37),-reale(44811,81027LL<<35),
+      reale(156785,14859LL<<36),reale(74079,77407LL<<35),
+      -reale(51372,1082481LL<<31),reale(20509061187LL,0x3b2dd04b78c45LL),
       // C4[17], coeff of eps^24, polynomial in n of order 5
-      reale(0x99759bLL,59960LL<<36),reale(-158284LL,938LL<<40),
-      reale(-0x79bdeeLL,43912LL<<36),reale(0x4d8087LL,3021LL<<40),
-      reale(-987193LL,48728LL<<36),reale(-20807LL,78972LL<<32),
-      reale(0x216d0c11d6LL,0x9e40b2104d5e3LL),
+      reale(10057115,7495LL<<39),-reale(158283,1579LL<<41),
+      -reale(7978477,2703LL<<39),reale(5079175,3021LL<<40),
+      -reale(987192,2101LL<<39),-reale(20806,242401LL<<34),
+      reale(143563428310LL,0x9e40b2104d5e3LL),
       // C4[17], coeff of eps^23, polynomial in n of order 6
-      reale(-0x1cff2faLL,49333LL<<36),reale(0x1b90d6dLL,86712LL<<32),
-      reale(-0x53819bLL,7854LL<<36),reale(-0x453fd8LL,875016LL<<32),
-      reale(0xf6a85LL,2151LL<<36),reale(0x18479dLL,491096LL<<32),
-      reale(-691601LL,0x991dd8LL<<28),reale(0x216d0c11d6LL,0x9e40b2104d5e3LL),
+      -reale(30405369,16203LL<<36),reale(28904813,10839LL<<35),
+      -reale(5472666,28841LL<<37),-reale(4538327,21695LL<<35),
+      reale(1010309,2151LL<<36),reale(1591197,61387LL<<35),
+      -reale(691600,842821LL<<31),reale(143563428310LL,0x9e40b2104d5e3LL),
       // C4[17], coeff of eps^22, polynomial in n of order 7
-      reale(0x24068eLL,41034LL<<36),reale(-0x2095e18LL,33996LL<<36),
-      reale(0x79e54dLL,798LL<<36),reale(0x12548a5LL,22088LL<<36),
-      reale(-0x125c0c3LL,21842LL<<36),reale(0x6f4e99LL,30532LL<<36),
-      reale(-776534LL,14118LL<<36),reale(-127092LL,420189LL<<32),
-      reale(0x216d0c11d6LL,0x9e40b2104d5e3LL),
+      reale(2360974,20517LL<<37),-reale(34168343,7885LL<<38),
+      reale(7988557,399LL<<37),reale(19220645,2761LL<<39),
+      -reale(19251394,21847LL<<37),reale(7294617,7633LL<<38),
+      -reale(776533,25709LL<<37),-reale(127091,628387LL<<32),
+      reale(143563428310LL,0x9e40b2104d5e3LL),
       // C4[17], coeff of eps^21, polynomial in n of order 8
-      reale(-0x8764bd6LL,42036LL<<36),reale(0x913afb2LL,248LL<<32),
-      reale(-0x51134cbLL,10871LL<<36),reale(0xa48f07LL,593256LL<<32),
-      reale(0x118661fLL,45978LL<<36),reale(-0x8fabc1LL,64216LL<<32),
-      reale(-0x3890baLL,25597LL<<36),reale(0x505dc7LL,159560LL<<32),
-      reale(-0x187191LL,0x890dc8LL<<28),
-      reale(0x216d0c11d6LL,0x9e40b2104d5e3LL),
+      -reale(141970389,5875LL<<38),reale(152285106,31LL<<35),
+      -reale(85013706,54665LL<<36),reale(10784519,74157LL<<35),
+      reale(18376223,22989LL<<37),-reale(9415616,123045LL<<35),
+      -reale(3707065,39939LL<<36),reale(5266887,19945LL<<35),
+      -reale(1601936,974407LL<<31),reale(143563428310LL,0x9e40b2104d5e3LL),
       // C4[17], coeff of eps^20, polynomial in n of order 9
-      reale(0xa6a33a7LL,28796LL<<36),reale(-0x5787a1eLL,530LL<<40),
-      reale(-0x15e2843LL,61508LL<<36),reale(0x6817531LL,3608LL<<36),
-      reale(-0x786b289LL,21196LL<<36),reale(0x524444eLL,2409LL<<40),
-      reale(-0x218e2e7LL,59796LL<<36),reale(0x5eeb26LL,56328LL<<36),
-      reale(846498LL,1564LL<<36),reale(-421215LL,879846LL<<32),
-      reale(0x216d0c11d6LL,0x9e40b2104d5e3LL),
+      reale(174732199,7199LL<<38),-reale(91781661,1783LL<<41),
+      -reale(22947906,1007LL<<38),reale(109147441,451LL<<39),
+      -reale(126268040,11085LL<<38),reale(86262862,2409LL<<40),
+      -reale(35185382,1435LL<<38),reale(6220582,7041LL<<39),
+      reale(846498,391LL<<38),-reale(421214,84365LL<<33),
+      reale(143563428310LL,0x9e40b2104d5e3LL),
       // C4[17], coeff of eps^19, polynomial in n of order 10
-      reale(0x5fcb5eeLL,5039LL<<36),reale(-0x8ed2046LL,73592LL<<32),
-      reale(0xad24cccLL,7756LL<<36),reale(-0xa3ea966LL,57352LL<<32),
-      reale(0x6caec7eLL,29289LL<<36),reale(-0x1c943bbLL,406936LL<<32),
-      reale(-0x267c089LL,38310LL<<36),reale(0x417984cLL,694824LL<<32),
-      reale(-0x36a1a06LL,7587LL<<36),reale(0x1b8c6d9LL,67512LL<<32),
-      reale(-0x68792dLL,572728LL<<28),reale(0x216d0c11d6LL,0x9e40b2104d5e3LL),
+      reale(100447726,5039LL<<36),-reale(149758021,121873LL<<35),
+      reale(181554380,1939LL<<38),-reale(171878757,123903LL<<35),
+      reale(113962110,29289LL<<36),-reale(29967290,80205LL<<35),
+      -reale(40353928,13613LL<<37),reale(68655180,86853LL<<35),
+      -reale(57285125,57949LL<<36),reale(28886745,8439LL<<35),
+      -reale(6846764,2025561LL<<31),reale(143563428310LL,0x9e40b2104d5e3LL),
       // C4[17], coeff of eps^18, polynomial in n of order 11
-      reale(0x8bd2aeLL,64742LL<<36),reale(-0x152920eLL,25788LL<<36),
-      reale(0x2b90affLL,31138LL<<36),reale(-0x4c60300LL,4075LL<<40),
-      reale(0x71be0c9LL,64254LL<<36),reale(-0x8ed887bLL,13732LL<<36),
-      reale(0x9529b5cLL,61882LL<<36),reale(-0x7e5b3b3LL,25176LL<<36),
-      reale(0x533e4b9LL,20118LL<<36),reale(-0x27ae5baLL,23948LL<<36),
-      reale(0xc041f5LL,33362LL<<36),reale(-0x1b5ebaLL,866999LL<<32),
-      reale(0x216d0c11d6LL,0x9e40b2104d5e3LL),
+      reale(9163438,32371LL<<37),-reale(22188557,9937LL<<38),
+      reale(45681407,15569LL<<37),-reale(80085759,21LL<<40),
+      reale(119267529,32127LL<<37),-reale(149784698,12951LL<<38),
+      reale(156408668,30941LL<<37),-reale(132494258,5045LL<<39),
+      reale(87286969,10059LL<<37),-reale(41608633,10397LL<<38),
+      reale(12599797,16681LL<<37),-reale(1793721,181577LL<<32),
+      reale(143563428310LL,0x9e40b2104d5e3LL),
       // C4[17], coeff of eps^17, polynomial in n of order 12
-      reale(152058LL,7062LL<<36),reale(-566839LL,172984LL<<32),
-      reale(0x1b4a05LL,65069LL<<36),reale(-0x49ae44LL,649320LL<<32),
-      reale(0xab8825LL,43876LL<<36),reale(-0x159dc41LL,185880LL<<32),
-      reale(0x25cc2f5LL,283LL<<36),reale(-0x3929bc8LL,142024LL<<32),
-      reale(0x4a1d656LL,7474LL<<36),reale(-0x50b0852LL,664696LL<<32),
-      reale(0x46180c2LL,52617LL<<36),reale(-0x290e15dLL,885032LL<<32),
-      reale(0xb1e7b3LL,0xa025a8LL<<28),reale(0x216d0c11d6LL,0x9e40b2104d5e3LL),
+      reale(152058,3531LL<<37),-reale(566838,109449LL<<35),
+      reale(1788421,65069LL<<36),-reale(4828739,49907LL<<35),
+      reale(11241509,10969LL<<38),-reale(22666304,107837LL<<35),
+      reale(39633653,283LL<<36),-reale(59939783,113319LL<<35),
+      reale(77715030,3737LL<<37),-reale(84609105,47985LL<<35),
+      reale(73498818,52617LL<<36),-reale(43049308,20443LL<<35),
+      reale(11659187,1311925LL<<31),reale(143563428310LL,0x9e40b2104d5e3LL),
       // C4[18], coeff of eps^29, polynomial in n of order 0
-      real(140LL<<32),real(0x29845c2bcb5c10d7LL),
+      real(35LL<<34),real(0x29845c2bcb5c10d7LL),
       // C4[18], coeff of eps^28, polynomial in n of order 1
-      reale(3628LL,36746LL<<36),reale(-4064LL,118540LL<<32),
-      reale(0xb89cd887LL,0x8a812bfedbe75LL),
+      reale(3628,18373LL<<37),-reale(4063,232509LL<<34),
+      reale(3097286791LL,0x8a812bfedbe75LL),
       // C4[18], coeff of eps^27, polynomial in n of order 2
-      reale(435730LL,4904LL<<36),reale(-110988LL,50292LL<<36),
-      real(0x74977e2cLL<<32),reale(0x50c49ebb4LL,0xc98833f803533LL),
+      reale(435730,613LL<<39),-reale(110987,3811LL<<38),real(489021323LL<<34),
+      reale(21681007540LL,0xc98833f803533LL),
       // C4[18], coeff of eps^26, polynomial in n of order 3
-      reale(-762946LL,34357LL<<36),reale(988791LL,174LL<<36),
-      reale(550009LL,38375LL<<36),reale(-343816LL,402198LL<<32),
-      reale(0x23560571f1LL,0x82b96bc817465LL),
+      -reale(762945,31179LL<<36),reale(988791,87LL<<37),
+      reale(550009,38375LL<<36),-reale(343815,323189LL<<33),
+      reale(151767052785LL,0x82b96bc817465LL),
       // C4[18], coeff of eps^25, polynomial in n of order 4
-      reale(0x103b40LL,54LL<<40),reale(-0x788224LL,3400LL<<36),
-      reale(0x46641dLL,699LL<<40),reale(-833937LL,64792LL<<36),
-      reale(-28055LL,293480LL<<32),reale(0x23560571f1LL,0x82b96bc817465LL),
+      reale(1063744,27LL<<41),-reale(7897635,7767LL<<39),
+      reale(4613149,699LL<<40),-reale(833936,93LL<<39),
+      -reale(28054,94387LL<<35),reale(151767052785LL,0x82b96bc817465LL),
       // C4[18], coeff of eps^24, polynomial in n of order 5
-      reale(0x1864c0bLL,17516LL<<36),reale(-0x30f981LL,2543LL<<40),
-      reale(-0x45d925LL,41844LL<<36),reale(702466LL,12664LL<<36),
-      reale(0x18336fLL,1148LL<<36),reale(-651637LL,67464LL<<32),
-      reale(0x23560571f1LL,0x82b96bc817465LL),
+      reale(25578507,4379LL<<38),-reale(3209600,1553LL<<40),
+      -reale(4577572,5923LL<<38),reale(702466,1583LL<<39),
+      reale(1586031,287LL<<38),-reale(651636,122639LL<<35),
+      reale(151767052785LL,0x82b96bc817465LL),
       // C4[18], coeff of eps^23, polynomial in n of order 6
-      reale(-0x1ed3c84LL,2281LL<<40),reale(0x35b907LL,9656LL<<36),
-      reale(0x1305be4LL,518LL<<40),reale(-0x10f6c3fLL,28936LL<<36),
-      reale(0x60b1d2LL,3235LL<<40),reale(-589728LL,20056LL<<36),
-      reale(-125506LL,883240LL<<32),reale(0x23560571f1LL,0x82b96bc817465LL),
+      -reale(32324739,1815LL<<40),reale(3520775,1207LL<<39),
+      reale(19946468,259LL<<41),-reale(17787966,4575LL<<39),
+      reale(6336978,3235LL<<40),-reale(589727,5685LL<<39),
+      -reale(125505,20667LL<<35),reale(151767052785LL,0x82b96bc817465LL),
       // C4[18], coeff of eps^22, polynomial in n of order 7
-      reale(0x8473679LL,22203LL<<36),reale(-0x41f6df2LL,36590LL<<36),
-      reale(0x319455LL,4577LL<<36),reale(0x11952deLL,41204LL<<36),
-      reale(-0x77a138LL,33927LL<<36),reale(-0x3e6f3aLL,4346LL<<36),
-      reale(0x4c9ddaLL,27565LL<<36),reale(-0x16b4d3LL,817202LL<<32),
-      reale(0x23560571f1LL,0x82b96bc817465LL),
+      reale(138884729,22203LL<<36),-reale(69168625,14473LL<<37),
+      reale(3249237,4577LL<<36),reale(18436830,10301LL<<38),
+      -reale(7840055,31609LL<<36),-reale(4091705,30595LL<<37),
+      reale(5021146,27565LL<<36),-reale(1488082,115687LL<<33),
+      reale(151767052785LL,0x82b96bc817465LL),
       // C4[18], coeff of eps^21, polynomial in n of order 8
-      reale(-0x3f4303bLL,1498LL<<40),reale(-0x2681d1aLL,396LL<<36),
-      reale(0x6ab31fdLL,38712LL<<36),reale(-0x70d7f80LL,46692LL<<36),
-      reale(0x494c416LL,3693LL<<40),reale(-0x1c90b87LL,51260LL<<36),
-      reale(0x491a22LL,39528LL<<36),reale(921311LL,17684LL<<36),
-      reale(-386622LL,321292LL<<32),reale(0x23560571f1LL,0x82b96bc817465LL),
+      -reale(66334778,1299LL<<41),-reale(40377625,16285LL<<38),
+      reale(111882749,4839LL<<39),-reale(118325119,4711LL<<38),
+      reale(76858390,3693LL<<40),-reale(29952902,3569LL<<38),
+      reale(4790818,4941LL<<39),reale(921311,4421LL<<38),
+      -reale(386621,181821LL<<34),reale(151767052785LL,0x82b96bc817465LL),
       // C4[18], coeff of eps^20, polynomial in n of order 9
-      reale(-0x90a7089LL,32278LL<<36),reale(0xa68edd2LL,1667LL<<40),
-      reale(-0x959fbbcLL,33866LL<<36),reale(0x5c50c5dLL,16676LL<<36),
-      reale(-0x111e205LL,52094LL<<36),reale(-0x29da349LL,7192LL<<36),
-      reale(0x3f04f44LL,50610LL<<36),reale(-0x32e2a1dLL,58124LL<<36),
-      reale(0x195e094LL,34022LL<<36),reale(-0x5ff14aLL,368660LL<<32),
-      reale(0x23560571f1LL,0x82b96bc817465LL),
+      -reale(151679112,16629LL<<37),reale(174648786,1667LL<<40),
+      -reale(156892091,15835LL<<37),reale(96799837,4169LL<<38),
+      -reale(17949188,6721LL<<37),-reale(43885384,7293LL<<39),
+      reale(66080580,25305LL<<37),-reale(53357084,1853LL<<38),
+      reale(26599572,17011LL<<37),-reale(6287689,169979LL<<34),
+      reale(151767052785LL,0x82b96bc817465LL),
       // C4[18], coeff of eps^19, polynomial in n of order 10
-      reale(-0x832312LL,24184LL<<36),reale(0xfeda80LL,21900LL<<36),
-      reale(-0x1a97403LL,1606LL<<40),reale(0x25ff726LL,57652LL<<36),
-      reale(-0x2e19f74LL,57928LL<<36),reale(0x2ecb0c8LL,46556LL<<36),
-      reale(-0x26beeebLL,931LL<<40),reale(0x1914217LL,62852LL<<36),
-      reale(-0xbcc7b7LL,52760LL<<36),reale(0x38a250LL,16940LL<<36),
-      reale(-524992LL,458356LL<<32),reale(0xbc75725fbLL,0x2b9323ed5d177LL),
+      -reale(8594193,5169LL<<39),reale(16702080,5475LL<<38),
+      -reale(27882498,1245LL<<41),reale(39843622,14413LL<<38),
+      -reale(48340851,951LL<<39),reale(49066184,11639LL<<38),
+      -reale(40627946,3165LL<<40),reale(26296855,15713LL<<38),
+      -reale(12371894,1597LL<<39),reale(3711568,4235LL<<38),
+      -reale(524991,147555LL<<34),reale(50589017595LL,0x2b9323ed5d177LL),
       // C4[18], coeff of eps^18, polynomial in n of order 11
-      reale(-768540LL,36525LL<<36),reale(0x223a21LL,36070LL<<36),
-      reale(-0x568badLL,25823LL<<36),reale(0xbea6b3LL,58040LL<<36),
-      reale(-0x16f00e8LL,60305LL<<36),reale(0x2697f7cLL,44170LL<<36),
-      reale(-0x388f437LL,18883LL<<36),reale(0x4785431LL,23900LL<<36),
-      reale(-0x4c659efLL,5749LL<<36),reale(0x417baccLL,51246LL<<36),
-      reale(-0x260d0dfLL,14503LL<<36),reale(0xa43857LL,40886LL<<32),
-      reale(0x23560571f1LL,0x82b96bc817465LL),
+      -reale(768539,29011LL<<36),reale(2243105,18035LL<<37),
+      -reale(5671852,39713LL<<36),reale(12494515,7255LL<<39),
+      -reale(24051943,5231LL<<36),reale(40468348,22085LL<<37),
+      -reale(59307062,46653LL<<36),reale(74994737,5975LL<<38),
+      -reale(80108014,59787LL<<36),reale(68664012,25623LL<<37),
+      -reale(39899358,51033LL<<36),reale(10762327,20443LL<<33),
+      reale(151767052785LL,0x82b96bc817465LL),
       // C4[19], coeff of eps^29, polynomial in n of order 0
-      -real(278788LL<<32),reale(220556LL,0x6c98ea537e51fLL),
+      -real(69697LL<<34),reale(220556,0x6c98ea537e51fLL),
       // C4[19], coeff of eps^28, polynomial in n of order 1
-      -real(0x25ce6eLL<<40),real(0x526878LL<<32),
-      reale(0x875e405LL,0x222cc7846d81LL),
+      -real(1238839LL<<41),real(675087LL<<35),
+      reale(141943813,0x222cc7846d81LL),
       // C4[19], coeff of eps^27, polynomial in n of order 2
-      reale(876102LL,3999LL<<40),reale(573743LL,11608LL<<36),
-      reale(-328616LL,988684LL<<32),reale(0x253efed20cLL,0x6732257fe12e7LL),
+      reale(876102,3999LL<<40),reale(573743,1451LL<<39),
+      -reale(328615,14973LL<<34),reale(159970677260LL,0x6732257fe12e7LL),
       // C4[19], coeff of eps^26, polynomial in n of order 3
-      reale(-0x7616ccLL,188LL<<44),reale(0x3fe2d6LL,106LL<<44),
-      reale(-704449LL,252LL<<44),reale(-33250LL,43054LL<<36),
-      reale(0x253efed20cLL,0x6732257fe12e7LL),
+      -reale(7739083,17LL<<46),reale(4186838,53LL<<45),-reale(704448,1LL<<46),
+      -reale(33249,11241LL<<37),reale(159970677260LL,0x6732257fe12e7LL),
       // C4[19], coeff of eps^25, polynomial in n of order 4
-      reale(-0x14c3e1LL,3564LL<<40),reale(-0x44ac82LL,1429LL<<40),
-      reale(427896LL,598LL<<40),reale(0x17f87fLL,1191LL<<40),
-      reale(-614729LL,682264LL<<32),reale(0x253efed20cLL,0x6732257fe12e7LL),
+      -reale(1360864,133LL<<42),-reale(4500609,2667LL<<40),
+      reale(427896,299LL<<41),reale(1570943,1191LL<<40),
+      -reale(614728,45789LL<<35),reale(159970677260LL,0x6732257fe12e7LL),
       // C4[19], coeff of eps^24, polynomial in n of order 5
-      reale(-379106LL,1572LL<<40),reale(0x13507daLL,139LL<<44),
-      reale(-0xfa1074LL,1276LL<<40),reale(0x541723LL,2712LL<<40),
-      reale(-439602LL,1300LL<<40),reale(-122602LL,8791LL<<36),
-      reale(0x253efed20cLL,0x6732257fe12e7LL),
+      -reale(379105,631LL<<42),reale(20252634,139LL<<44),
+      -reale(16388211,705LL<<42),reale(5510947,339LL<<43),
+      -reale(439601,699LL<<42),-reale(122601,56745LL<<36),
+      reale(159970677260LL,0x6732257fe12e7LL),
       // C4[19], coeff of eps^23, polynomial in n of order 6
-      reale(-0x34ca7fdLL,2962LL<<40),reale(-0x26758eLL,1979LL<<40),
-      reale(0x112edacLL,588LL<<40),reale(-0x61dc3eLL,3325LL<<40),
-      reale(-0x42baddLL,3974LL<<40),reale(0x490036LL,2079LL<<40),
-      reale(-0x1526d6LL,612696LL<<32),reale(0x253efed20cLL,0x6732257fe12e7LL),
+      -reale(55355388,567LL<<41),-reale(2520461,2117LL<<40),
+      reale(18017708,147LL<<42),-reale(6413373,771LL<<40),
+      -reale(4373212,61LL<<41),reale(4784182,2079LL<<40),
+      -reale(1386197,54485LL<<35),reale(159970677260LL,0x6732257fe12e7LL),
       // C4[19], coeff of eps^22, polynomial in n of order 7
-      reale(-0x339b0deLL,140LL<<44),reale(0x6b363e4LL,70LL<<44),
-      reale(-0x6942777LL,220LL<<44),reale(0x415624aLL,212LL<<44),
-      reale(-0x185f56bLL,180LL<<44),reale(0x37bb9bLL,2LL<<44),
-      reale(962676LL,68LL<<44),reale(-355363LL,5350LL<<36),
-      reale(0x253efed20cLL,0x6732257fe12e7LL),
+      -reale(54112477,29LL<<46),reale(112419812,35LL<<45),
+      -reale(110372726,9LL<<46),reale(68510282,53LL<<46),
+      -reale(25556330,19LL<<46),reale(3652507,1LL<<45),reale(962676,17LL<<46),
+      -reale(355362,30093LL<<37),reale(159970677260LL,0x6732257fe12e7LL),
       // C4[19], coeff of eps^21, polynomial in n of order 8
-      reale(0x9efff2bLL,836LL<<40),reale(-0x87dbb7aLL,5784LL<<36),
-      reale(0x4dc0e0bLL,2787LL<<40),reale(-0x79bbaaLL,38472LL<<36),
-      reale(-0x2c273bcLL,546LL<<40),reale(0x3c7f924LL,6392LL<<36),
-      reale(-0x2f7f0bfLL,289LL<<40),reale(0x1772679LL,20648LL<<36),
-      reale(-0x587d9eLL,625076LL<<32),reale(0x253efed20cLL,0x6732257fe12e7LL),
+      reale(166723371,209LL<<42),-reale(142457721,7469LL<<39),
+      reale(81530379,2787LL<<40),-reale(7977897,3383LL<<39),
+      -reale(46298043,1775LL<<41),reale(63437092,799LL<<39),
+      -reale(49803454,3807LL<<40),reale(24585849,2581LL<<39),
+      -reale(5799325,105875LL<<34),reale(159970677260LL,0x6732257fe12e7LL),
       // C4[19], coeff of eps^20, polynomial in n of order 9
-      reale(0x3396d84LL,3458LL<<40),reale(-0x52718c9LL,223LL<<44),
-      reale(0x7187115LL,1054LL<<40),reale(-0x8586c9eLL,596LL<<40),
-      reale(0x841a240LL,2266LL<<40),reale(-0x6b26ec6LL,2040LL<<40),
-      reale(0x4440e43LL,2550LL<<40),reale(-0x1fbb2b3LL,2332LL<<40),
-      reale(0x97062bLL,1458LL<<40),reale(-0x153cdfLL,946936LL<<32),
-      reale(0x253efed20cLL,0x6732257fe12e7LL),
+      reale(54095236,1729LL<<41),-reale(86448328,33LL<<44),
+      reale(119042325,527LL<<41),-reale(140012701,875LL<<42),
+      reale(138519104,1133LL<<41),-reale(112357061,257LL<<43),
+      reale(71568963,1275LL<<41),-reale(33272498,441LL<<42),
+      reale(9897515,729LL<<41),-reale(1391838,12705LL<<35),
+      reale(159970677260LL,0x6732257fe12e7LL),
       // C4[19], coeff of eps^19, polynomial in n of order 10
-      reale(0x29ae82LL,3225LL<<40),reale(-0x637e0cLL,22152LL<<36),
-      reale(0xd0b67eLL,3540LL<<40),reale(-0x1818a00LL,20984LL<<36),
-      reale(0x272bd05LL,3215LL<<40),reale(-0x37cef07LL,8808LL<<36),
-      reale(0x44ffda2LL,362LL<<40),reale(-0x48730b7LL,472LL<<36),
-      reale(0x3d5a819LL,3333LL<<40),reale(-0x2365723LL,27208LL<<36),
-      reale(0x983437LL,728420LL<<32),reale(0x253efed20cLL,0x6732257fe12e7LL),
+      reale(2731650,3225LL<<40),-reale(6520331,5423LL<<39),
+      reale(13678206,885LL<<42),-reale(25266687,5569LL<<39),
+      reale(41073925,3215LL<<40),-reale(58519302,7091LL<<39),
+      reale(72351138,181LL<<41),-reale(75968694,8133LL<<39),
+      reale(64333849,3333LL<<40),-reale(37115682,4791LL<<39),
+      reale(9974839,182105LL<<34),reale(159970677260LL,0x6732257fe12e7LL),
       // C4[20], coeff of eps^29, polynomial in n of order 0
-      real(8LL<<36),reale(386445LL,0x44b61aebc827LL),
+      real(1LL<<39),reale(386445,0x44b61aebc827LL),
       // C4[20], coeff of eps^28, polynomial in n of order 1
-      reale(3670LL,3431LL<<40),-real(0x79ecc9eLL<<36),
-      reale(0x3e42bbf0LL,0x57ec63f8653c9LL),
+      reale(3670,3431LL<<40),-real(63923791LL<<37),
+      reale(1044560880,0x57ec63f8653c9LL),
       // C4[20], coeff of eps^27, polynomial in n of order 2
-      reale(165149LL,3624LL<<40),reale(-25859LL,2212LL<<40),
-      -real(0x643c72cLL<<36),reale(0x1b3d32392LL,0x6776bbcac4a7fLL),
+      reale(165149,453LL<<43),-reale(25858,471LL<<42),-real(26276299LL<<38),
+      reale(7311926162LL,0x6776bbcac4a7fLL),
       // C4[20], coeff of eps^26, polynomial in n of order 3
-      reale(-0x4244faLL,1716LL<<40),reale(185313LL,2424LL<<40),
-      reale(0x17a0b9LL,1084LL<<40),reale(-580655LL,3319LL<<40),
-      reale(0x2727f83227LL,0x4baadf37ab169LL),
+      -reale(4343033,595LL<<42),reale(185313,303LL<<43),
+      reale(1548473,271LL<<42),-reale(580654,777LL<<40),
+      reale(168174301735LL,0x4baadf37ab169LL),
       // C4[20], coeff of eps^25, polynomial in n of order 4
-      reale(0x134c88bLL,149LL<<44),reale(-0xe5e8c7LL,3564LL<<40),
-      reale(0x493468LL,1320LL<<40),reale(-318600LL,2596LL<<40),
-      reale(-118862LL,50036LL<<36),reale(0x2727f83227LL,0x4baadf37ab169LL),
+      reale(20236427,149LL<<44),-reale(15067334,133LL<<42),
+      reale(4797544,165LL<<43),-reale(318599,375LL<<42),
+      -reale(118861,3875LL<<38),reale(168174301735LL,0x4baadf37ab169LL),
       // C4[20], coeff of eps^24, polynomial in n of order 5
-      reale(-0x68d732LL,138LL<<40),reale(0x107b55fLL,2248LL<<40),
-      reale(-0x4e5e68LL,3718LL<<40),reale(-0x45c3d0LL,3044LL<<40),
-      reale(0x458b55LL,3074LL<<40),reale(-0x13c16fLL,49292LL<<36),
-      reale(0x2727f83227LL,0x4baadf37ab169LL),
+      -reale(6870833,1979LL<<41),reale(17282399,281LL<<43),
+      -reale(5135975,189LL<<41),-reale(4572111,263LL<<42),
+      reale(4557653,1537LL<<41),-reale(1294702,4061LL<<38),
+      reale(168174301735LL,0x4baadf37ab169LL),
       // C4[20], coeff of eps^23, polynomial in n of order 6
-      reale(0x6a2ccd4LL,1048LL<<40),reale(-0x61dbb7dLL,2340LL<<40),
-      reale(0x3a48569LL,49LL<<44),reale(-0x14d642cLL,636LL<<40),
-      reale(0x29d82eLL,2056LL<<40),reale(980372LL,2132LL<<40),
-      reale(-327160LL,31972LL<<36),reale(0x2727f83227LL,0x4baadf37ab169LL),
+      reale(111332564,131LL<<43),-reale(102611836,439LL<<42),
+      reale(61113705,49LL<<44),-reale(21849131,865LL<<42),
+      reale(2742318,257LL<<43),reale(980372,533LL<<42),
+      -reale(327159,8391LL<<38),reale(168174301735LL,0x4baadf37ab169LL),
       // C4[20], coeff of eps^22, polynomial in n of order 7
-      reale(-0x7ac7862LL,180LL<<40),reale(0x40d94faLL,3848LL<<40),
-      reale(279122LL,3420LL<<40),reale(-0x2da1937LL,11LL<<44),
-      reale(0x39fa588LL,1028LL<<40),reale(-0x2c6cf46LL,2648LL<<40),
-      reale(0x15bf3c2LL,172LL<<40),reale(-0x51f049LL,1867LL<<40),
-      reale(0x2727f83227LL,0x4baadf37ab169LL),
+      -reale(128743521,979LL<<42),reale(67998970,481LL<<43),
+      reale(279122,855LL<<42),-reale(47847734,245LL<<44),
+      reale(60794248,257LL<<42),-reale(46583621,181LL<<43),
+      reale(22803394,43LL<<42),-reale(5369928,2229LL<<40),
+      reale(168174301735LL,0x4baadf37ab169LL),
       // C4[20], coeff of eps^21, polynomial in n of order 8
-      reale(-0x54763dcLL,14LL<<44),reale(0x707c506LL,2132LL<<40),
-      reale(-0x80a2268LL,3880LL<<40),reale(0x7c5638eLL,956LL<<40),
-      reale(-0x62fb0c0LL,199LL<<44),reale(0x3e22c17LL,932LL<<40),
-      reale(-0x1c93423LL,952LL<<40),reale(0x86f52cLL,780LL<<40),
-      reale(-0x12e0c6LL,38044LL<<36),reale(0x2727f83227LL,0x4baadf37ab169LL),
+      -reale(88564699,121LL<<45),reale(117949702,533LL<<42),
+      -reale(134881895,27LL<<43),reale(130376590,239LL<<42),
+      -reale(103788735,57LL<<44),reale(65154071,233LL<<42),
+      -reale(29963298,393LL<<43),reale(8844588,195LL<<42),
+      -reale(1237189,6873LL<<38),reale(168174301735LL,0x4baadf37ab169LL),
       // C4[20], coeff of eps^20, polynomial in n of order 9
-      reale(-0x705847LL,3097LL<<40),reale(0xe19d42LL,1096LL<<40),
-      reale(-0x191a1e2LL,4087LL<<40),reale(0x278fcc4LL,2166LL<<40),
-      reale(-0x36f262eLL,2453LL<<40),reale(0x42906c0LL,2084LL<<40),
-      reale(-0x44d01cbLL,2163LL<<40),reale(0x39a3603LL,1234LL<<40),
-      reale(-0x2109598LL,1041LL<<40),reale(0x8d95c8LL,42350LL<<36),
-      reale(0x2727f83227LL,0x4baadf37ab169LL),
+      -reale(7362630,999LL<<40),reale(14785858,137LL<<43),
+      -reale(26321377,9LL<<40),reale(41483460,1083LL<<41),
+      -reale(57615917,1643LL<<40),reale(69797568,521LL<<42),
+      -reale(72155594,1933LL<<40),reale(60438019,617LL<<41),
+      -reale(34641303,3055LL<<40),reale(9278920,21175LL<<37),
+      reale(168174301735LL,0x4baadf37ab169LL),
       // C4[21], coeff of eps^29, polynomial in n of order 0
-      -real(0xf64d18LL<<36),reale(0x89fcdedLL,0x92d5d14b2b5b9LL),
+      -real(2017699LL<<39),reale(144690669,0x92d5d14b2b5b9LL),
       // C4[21], coeff of eps^28, polynomial in n of order 1
-      reale(-21807LL,8LL<<44),-real(0x6ae714LL<<40),
-      reale(0x1c915a22fLL,0x6644548ff9f4dLL),
+      -reale(21806,31LL<<47),-real(1751493LL<<42),
+      reale(7668605487LL,0x6644548ff9f4dLL),
       // C4[21], coeff of eps^27, polynomial in n of order 2
-      -real(0x4a7828LL<<40),reale(66113LL,892LL<<40),
-      reale(-23878LL,9012LL<<36),reale(0x1c915a22fLL,0x6644548ff9f4dLL),
+      -real(610053LL<<43),reale(66113,223LL<<42),-reale(23877,14131LL<<38),
+      reale(7668605487LL,0x6644548ff9f4dLL),
       // C4[21], coeff of eps^26, polynomial in n of order 3
-      reale(-601428LL,33LL<<44),reale(181759LL,130LL<<44),
-      reale(-9603LL,251LL<<44),reale(-4984LL,43768LL<<36),
-      reale(0x1c915a22fLL,0x6644548ff9f4dLL),
+      -reale(601427,223LL<<44),reale(181759,65LL<<45),-reale(9602,5LL<<44),
+      -reale(4983,2721LL<<39),reale(7668605487LL,0x6644548ff9f4dLL),
       // C4[21], coeff of eps^25, polynomial in n of order 4
-      reale(0xf974f5LL,227LL<<44),reale(-0x3d0ee8LL,916LL<<40),
-      reale(-0x47cb0fLL,920LL<<40),reale(0x424279LL,3420LL<<40),
-      reale(-0x127f61LL,61332LL<<36),reale(0x2910f19242LL,0x302398ef74febLL),
+      reale(16348405,227LL<<44),-reale(4001511,795LL<<42),
+      -reale(4705038,397LL<<43),reale(4342393,855LL<<42),
+      -reale(1212256,1051LL<<38),reale(176377926210LL,0x302398ef74febLL),
       // C4[21], coeff of eps^24, polynomial in n of order 5
-      reale(-0x5ac25b1LL,218LL<<44),reale(0x3409bb9LL,56LL<<44),
-      reale(-0x11d875bLL,246LL<<44),reale(0x1eb2f9LL,60LL<<44),
-      reale(981374LL,50LL<<44),reale(-301722LL,3499LL<<40),
-      reale(0x2910f19242LL,0x302398ef74febLL),
+      -reale(95167920,19LL<<45),reale(54565817,7LL<<47),
+      -reale(18712410,5LL<<45),reale(2011897,15LL<<46),reale(981374,25LL<<45),
+      -reale(301721,597LL<<40),reale(176377926210LL,0x302398ef74febLL),
       // C4[21], coeff of eps^23, polynomial in n of order 6
-      reale(0x357280fLL,1064LL<<40),reale(0x6c5b77LL,3036LL<<40),
-      reale(-0x2e797e5LL,7LL<<44),reale(0x3780793LL,644LL<<40),
-      reale(-0x29a3644LL,696LL<<40),reale(0x143c211LL,2476LL<<40),
-      reale(-0x4c24abLL,21380LL<<36),reale(0x2910f19242LL,0x302398ef74febLL),
+      reale(56043535,133LL<<43),reale(7101303,759LL<<42),
+      -reale(48732132,249LL<<44),reale(58197907,161LL<<42),
+      -reale(43660867,425LL<<43),reale(21217809,619LL<<42),
+      -reale(4990122,11039LL<<38),reale(176377926210LL,0x302398ef74febLL),
       // C4[21], coeff of eps^22, polynomial in n of order 7
-      reale(0x24fee78LL,189LL<<44),reale(-0x293d038LL,6LL<<44),
-      reale(0x27065d3LL,151LL<<44),reale(-0x1e8a051LL,100LL<<44),
-      reale(0x12eacc3LL,97LL<<44),reale(-0x89d1e9LL,130LL<<44),
-      reale(0x28653fLL,187LL<<44),reale(-368525LL,32248LL<<36),
-      reale(0xdb0508616LL,0x100bdda526ff9LL),
+      reale(38792824,189LL<<44),-reale(43241527,125LL<<45),
+      reale(40920531,151LL<<44),-reale(32022608,39LL<<46),
+      reale(19836099,97LL<<44),-reale(9032168,63LL<<45),
+      reale(2647359,187LL<<44),-reale(368524,4161LL<<39),
+      reale(58792642070LL,0x100bdda526ff9LL),
       // C4[21], coeff of eps^21, polynomial in n of order 8
-      reale(0xf14d2aLL,242LL<<44),reale(-0x19f7773LL,3276LL<<40),
-      reale(0x27cb065LL,3544LL<<40),reale(-0x36013f8LL,164LL<<40),
-      reale(0x4038d5eLL,57LL<<44),reale(-0x4175017LL,3324LL<<40),
-      reale(0x36480daLL,840LL<<40),reale(-0x1eed84dLL,1236LL<<40),
-      reale(0x842565LL,61372LL<<36),reale(0x2910f19242LL,0x302398ef74febLL),
+      reale(15813930,121LL<<45),-reale(27228018,205LL<<42),
+      reale(41726053,443LL<<43),-reale(56628215,983LL<<42),
+      reale(67341662,57LL<<44),-reale(68636694,193LL<<42),
+      reale(56918234,105LL<<43),-reale(32430156,715LL<<42),
+      reale(8660325,15343LL<<38),reale(176377926210LL,0x302398ef74febLL),
       // C4[22], coeff of eps^29, polynomial in n of order 0
-      -real(1832LL<<40),reale(0x1ece7bLL,0x935060fc493cdLL),
+      -real(229LL<<43),reale(2018939,0x935060fc493cdLL),
       // C4[22], coeff of eps^28, polynomial in n of order 1
-      reale(64733LL,244LL<<44),reale(-22614LL,152LL<<40),
-      reale(0x1de5820ccLL,0x6511ed552f41bLL),
+      reale(64733,61LL<<46),-reale(22613,493LL<<43),
+      reale(8025284812LL,0x6511ed552f41bLL),
       // C4[22], coeff of eps^27, polynomial in n of order 2
-      reale(158513LL,3LL<<48),reale(-6163LL,24LL<<44),reale(-4787LL,200LL<<40),
-      reale(0x1de5820ccLL,0x6511ed552f41bLL),
+      reale(158513,3LL<<48),-reale(6162,29LL<<47),-reale(4786,487LL<<43),
+      reale(8025284812LL,0x6511ed552f41bLL),
       // C4[22], coeff of eps^26, polynomial in n of order 3
-      reale(-130439LL,1688LL<<40),reale(-208063LL,209LL<<44),
-      reale(179942LL,3976LL<<40),reale(-49467LL,3929LL<<40),
-      reale(0x1de5820ccLL,0x6511ed552f41bLL),
+      -reale(130438,301LL<<43),-reale(208062,47LL<<44),reale(179942,497LL<<43),
+      -reale(49466,167LL<<40),reale(8025284812LL,0x6511ed552f41bLL),
       // C4[22], coeff of eps^25, polynomial in n of order 4
-      reale(0x205af6LL,24LL<<44),reale(-697804LL,178LL<<44),
-      reale(61914LL,12LL<<44),reale(42203LL,230LL<<44),
-      reale(-12121LL,3010LL<<40),reale(0x1de5820ccLL,0x6511ed552f41bLL),
+      reale(2120438,3LL<<47),-reale(697803,39LL<<45),reale(61914,3LL<<46),
+      reale(42203,115LL<<45),-reale(12120,543LL<<41),
+      reale(8025284812LL,0x6511ed552f41bLL),
       // C4[22], coeff of eps^24, polynomial in n of order 5
-      reale(0xc22191LL,33LL<<44),reale(-0x2ed4670LL,52LL<<44),
-      reale(0x3519274LL,71LL<<44),reale(-0x271a5b7LL,26LL<<44),
-      reale(0x12e2308LL,109LL<<44),reale(-0x46fd3aLL,2422LL<<40),
-      reale(0x2af9eaf25dLL,0x149c52a73ee6dLL),
+      reale(12722577,33LL<<44),-reale(49104495,51LL<<46),
+      reale(55677556,71LL<<44),-reale(41002422,115LL<<45),
+      reale(19800840,109LL<<44),-reale(4652345,837LL<<41),
+      reale(184581550685LL,0x149c52a73ee6dLL),
       // C4[22], coeff of eps^23, polynomial in n of order 6
-      reale(-0x76d66c5LL,28LL<<44),reale(0x6e4c116LL,226LL<<44),
-      reale(-0x54f813bLL,104LL<<44),reale(0x33fe252LL,238LL<<44),
-      reale(-0x17759d5LL,180LL<<44),reale(0x6d4e33LL,250LL<<44),
-      reale(-992760LL,414LL<<40),reale(0x2af9eaf25dLL,0x149c52a73ee6dLL),
+      -reale(124610244,57LL<<46),reale(115654934,113LL<<45),
+      -reale(89096506,19LL<<47),reale(54518354,119LL<<45),
+      -reale(24598996,19LL<<46),reale(7163443,125LL<<45),
+      -reale(992759,1841LL<<41),reale(184581550685LL,0x149c52a73ee6dLL),
       // C4[22], coeff of eps^22, polynomial in n of order 7
-      reale(-0x1ab3b1eLL,2856LL<<40),reale(0x27e3b0dLL,121LL<<44),
-      reale(-0x350196eLL,4088LL<<40),reale(0x3df9fb2LL,166LL<<44),
-      reale(-0x3e5ab9aLL,3272LL<<40),reale(0x333ca85LL,211LL<<44),
-      reale(-0x1d08c5dLL,408LL<<40),reale(0x7bb613LL,715LL<<40),
-      reale(0x2af9eaf25dLL,0x149c52a73ee6dLL),
+      -reale(27999005,155LL<<43),reale(41827085,121LL<<44),
+      -reale(55581037,1LL<<43),reale(64987058,83LL<<45),
+      -reale(65383321,103LL<<43),reale(53725829,211LL<<44),
+      -reale(30444636,461LL<<43),reale(8107539,715LL<<40),
+      reale(184581550685LL,0x149c52a73ee6dLL),
       // C4[23], coeff of eps^29, polynomial in n of order 0
-      reale(-4290LL,3928LL<<40),reale(0x63ebb97bLL,0x7a5fe79ee0e95LL),
+      -reale(4289,21LL<<43),reale(1676392827,0x7a5fe79ee0e95LL),
       // C4[23], coeff of eps^28, polynomial in n of order 1
-      -real(10808LL<<48),-real(234789LL<<44),
-      reale(0x63ebb97bLL,0x7a5fe79ee0e95LL),
+      -real(1351LL<<51),-real(234789LL<<44),
+      reale(1676392827,0x7a5fe79ee0e95LL),
       // C4[23], coeff of eps^27, polynomial in n of order 2
-      reale(-209745LL,12LL<<48),reale(171585LL,6LL<<48),
-      reale(-46527LL,344LL<<40),reale(0x1f39a9f69LL,0x63df861a648e9LL),
+      -reale(209744,1LL<<50),reale(171585,3LL<<49),-reale(46526,469LL<<43),
+      reale(8381964137LL,0x63df861a648e9LL),
       // C4[23], coeff of eps^26, polynomial in n of order 3
-      reale(-599195LL,8LL<<48),reale(41297LL,0LL),reale(41388LL,8LL<<48),
-      reale(-11219LL,62LL<<44),reale(0x1f39a9f69LL,0x63df861a648e9LL),
+      -reale(599194,1LL<<51),reale(41297,0),reale(41388,1LL<<51),
+      -reale(11218,97LL<<45),reale(8381964137LL,0x63df861a648e9LL),
       // C4[23], coeff of eps^25, polynomial in n of order 4
-      reale(-0x209048LL,2LL<<48),reale(0x23540bLL,248LL<<44),
-      reale(-0x19982fLL,1LL<<48),reale(805613LL,168LL<<44),
-      reale(-189150LL,1670LL<<40),reale(0x1f39a9f69LL,0x63df861a648e9LL),
+      -reale(2134087,7LL<<49),reale(2315275,31LL<<47),-reale(1677358,15LL<<48),
+      reale(805613,21LL<<47),-reale(189149,1213LL<<41),
+      reale(8381964137LL,0x63df861a648e9LL),
       // C4[23], coeff of eps^24, polynomial in n of order 5
-      reale(0x48559cLL,2LL<<48),reale(-0x36ec9fLL,8LL<<48),
-      reale(0x213b34LL,14LL<<48),reale(-974430LL,12LL<<48),
-      reale(282071LL,10LL<<48),reale(-38932LL,980LL<<40),
-      reale(0x1f39a9f69LL,0x63df861a648e9LL),
+      reale(4740508,1LL<<49),-reale(3599518,1LL<<51),reale(2177844,7LL<<49),
+      -reale(974429,1LL<<50),reale(282071,5LL<<49),-reale(38931,779LL<<42),
+      reale(8381964137LL,0x63df861a648e9LL),
       // C4[23], coeff of eps^23, polynomial in n of order 6
-      reale(0x1bbca3LL,3LL<<48),reale(-0x24271bLL,72LL<<44),
-      reale(0x299ea8LL,2LL<<48),reale(-0x2960b7LL,248LL<<44),
-      reale(0x21b719LL,1LL<<48),reale(-0x130279LL,168LL<<44),
-      reale(330919LL,3958LL<<40),reale(0x1f39a9f69LL,0x63df861a648e9LL),
+      reale(1817763,3LL<<48),-reale(2369306,23LL<<47),reale(2727592,1LL<<49),
+      -reale(2711734,1LL<<47),reale(2209561,1LL<<48),-reale(1245816,11LL<<47),
+      reale(330919,1979LL<<41),reale(8381964137LL,0x63df861a648e9LL),
       // C4[24], coeff of eps^29, polynomial in n of order 0
-      -real(5756LL<<44),reale(0x2abccf4LL,0x37a4fd885dffdLL),
+      -real(1439LL<<46),reale(44813556,0x37a4fd885dffdLL),
       // C4[24], coeff of eps^28, polynomial in n of order 1
-      reale(32742LL,12LL<<48),reale(-8771LL,88LL<<44),
-      reale(0x682c3934LL,0x7a229fc651f8bLL),
+      reale(32742,3LL<<50),-reale(8770,21LL<<47),
+      reale(1747728692,0x7a229fc651f8bLL),
       // C4[24], coeff of eps^27, polynomial in n of order 2
-      reale(4928LL,8LL<<48),reale(8067LL,4LL<<48),reale(-2081LL,84LL<<44),
-      reale(0x682c3934LL,0x7a229fc651f8bLL),
+      reale(4928,1LL<<51),reale(8067,1LL<<50),-reale(2080,43LL<<46),
+      reale(1747728692,0x7a229fc651f8bLL),
       // C4[24], coeff of eps^26, polynomial in n of order 3
-      reale(0x21c9baLL,0LL),reale(-0x182040LL,0LL),reale(755790LL,0LL),
-      reale(-177364LL,200LL<<44),reale(0x208dd1e06LL,0x62ad1edf99db7LL),
+      reale(2214330,0),-reale(1581120,0),reale(755790,0),
+      -reale(177363,7LL<<47),reale(8738643462LL,0x62ad1edf99db7LL),
       // C4[24], coeff of eps^25, polynomial in n of order 4
-      reale(-0x110b1bLL,0LL),reale(668788LL,12LL<<48),reale(-296918LL,8LL<<48),
-      reale(85476LL,4LL<<48),reale(-11753LL,4LL<<44),
-      reale(0xad9f0a02LL,0x20e45f9fddf3dLL),
+      -reale(1116955,0),reale(668788,3LL<<50),-reale(296917,1LL<<51),
+      reale(85476,1LL<<50),-reale(11752,63LL<<46),
+      reale(2912881154LL,0x20e45f9fddf3dLL),
       // C4[24], coeff of eps^24, polynomial in n of order 5
-      reale(-0x236a61LL,13LL<<48),reale(0x283148LL,4LL<<48),
-      reale(-0x2785ccLL,11LL<<48),reale(0x1ff458LL,2LL<<48),
-      reale(-0x11ef03LL,9LL<<48),reale(311454LL,22LL<<44),
-      reale(0x208dd1e06LL,0x62ad1edf99db7LL),
+      -reale(2320992,3LL<<48),reale(2634056,1LL<<50),-reale(2590155,5LL<<48),
+      reale(2094168,1LL<<49),-reale(1175298,7LL<<48),reale(311454,11LL<<45),
+      reale(8738643462LL,0x62ad1edf99db7LL),
       // C4[25], coeff of eps^29, polynomial in n of order 0
-      -real(14828LL<<44),reale(0xc21a5bLL,0x2bd144a4925efLL),
+      -real(3707LL<<46),reale(12720731,0x2bd144a4925efLL),
       // C4[25], coeff of eps^28, polynomial in n of order 1
-      real(602LL<<52),-real(2379LL<<48),reale(0x85721eaLL,0xe1fdf3124a145LL),
+      real(301LL<<53),-real(2379LL<<48),reale(139928042,0xe1fdf3124a145LL),
       // C4[25], coeff of eps^27, polynomial in n of order 2
-      reale(-298604LL,8LL<<48),reale(142145LL,4LL<<48),reale(-33347LL,4LL<<44),
-      reale(0x6c6cb8edLL,0x79e557edc3081LL),
+      -reale(298603,1LL<<51),reale(142145,1LL<<50),-reale(33346,63LL<<46),
+      reale(1819064557,0x79e557edc3081LL),
       // C4[25], coeff of eps^26, polynomial in n of order 3
-      reale(370617LL,0LL),reale(-163358LL,0LL),reale(46787LL,0LL),
-      reale(-6411LL,72LL<<44),reale(0x6c6cb8edLL,0x79e557edc3081LL),
+      reale(370617,0),-reale(163358,0),reale(46787,0),-reale(6410,23LL<<47),
+      reale(1819064557,0x79e557edc3081LL),
       // C4[25], coeff of eps^25, polynomial in n of order 4
-      reale(508963LL,0LL),reale(-495427LL,4LL<<48),reale(397689LL,8LL<<48),
-      reale(-222239LL,12LL<<48),reale(58764LL,236LL<<44),
-      reale(0x6c6cb8edLL,0x79e557edc3081LL),
+      reale(508963,0),-reale(495426,3LL<<50),reale(397689,1LL<<51),
+      -reale(222238,1LL<<50),reale(58764,59LL<<46),
+      reale(1819064557,0x79e557edc3081LL),
       // C4[26], coeff of eps^29, polynomial in n of order 0
-      -real(2LL<<48),reale(131359LL,0xe834f81ee20c1LL),
+      -real(1LL<<49),reale(131359,0xe834f81ee20c1LL),
       // C4[26], coeff of eps^28, polynomial in n of order 1
-      reale(10305LL,0LL),reale(-2418LL,14LL<<48),
-      reale(0x8aadcf9LL,0x1d0ced8b7a293LL),
+      reale(10305,0),-reale(2417,1LL<<49),reale(145415417,0x1d0ced8b7a293LL),
       // C4[26], coeff of eps^27, polynomial in n of order 2
-      reale(-11556LL,0LL),reale(3294LL,0LL),-real(7198LL<<48),
-      reale(0x8aadcf9LL,0x1d0ced8b7a293LL),
+      -reale(11556,0),reale(3294,0),-real(3599LL<<49),
+      reale(145415417,0x1d0ced8b7a293LL),
       // C4[26], coeff of eps^26, polynomial in n of order 3
-      reale(-36491LL,8LL<<48),reale(29097LL,0LL),reale(-16196LL,8LL<<48),
-      reale(4273LL,13LL<<48),reale(0x8aadcf9LL,0x1d0ced8b7a293LL),
+      -reale(36490,1LL<<51),reale(29097,0),-reale(16195,1LL<<51),
+      reale(4273,13LL<<48),reale(145415417,0x1d0ced8b7a293LL),
       // C4[27], coeff of eps^29, polynomial in n of order 0
-      -real(4058LL<<48),reale(0xffd800LL,0xd0e6a80084b19LL),
+      -real(2029LL<<49),reale(16766976,0xd0e6a80084b19LL),
       // C4[27], coeff of eps^28, polynomial in n of order 1
-      real(7LL<<56),-real(244LL<<48),reale(0x554800LL,0x45a238002c3b3LL),
+      real(7LL<<56),-real(61LL<<50),reale(5588992,0x45a238002c3b3LL),
       // C4[27], coeff of eps^27, polynomial in n of order 2
-      reale(3080LL,0LL),-real(1708LL<<52),real(7198LL<<48),
-      reale(0xffd800LL,0xd0e6a80084b19LL),
+      reale(3080,0),-real(427LL<<54),real(3599LL<<49),
+      reale(16766976,0xd0e6a80084b19LL),
       // C4[28], coeff of eps^29, polynomial in n of order 0
-      -real(2LL<<52),reale(827461LL,0x318a62b8e0a5bLL),
+      -real(1LL<<53),reale(827461,0x318a62b8e0a5bLL),
       // C4[28], coeff of eps^28, polynomial in n of order 1
-      -real(232LL<<52),real(61LL<<52),reale(0x25e0cfLL,0x949f282aa1f11LL),
+      -real(29LL<<55),real(61LL<<52),reale(2482383,0x949f282aa1f11LL),
       // C4[29], coeff of eps^29, polynomial in n of order 0
-      real(2LL<<52),reale(88602LL,0xec373d36a45dfLL),
-    };
+      real(1LL<<53),reale(88602,0xec373d36a45dfLL),
+    };  // count = 5425
 #else
 #error "Bad value for GEOGRAPHICLIB_GEODESICEXACT_ORDER"
 #endif
diff --git a/src/GeodesicLine.cpp b/src/GeodesicLine.cpp
index 9081c7c..8024ebf 100644
--- a/src/GeodesicLine.cpp
+++ b/src/GeodesicLine.cpp
@@ -138,8 +138,7 @@ namespace GeographicLib {
                                        real& lat2, real& lon2, real& azi2,
                                        real& s12, real& m12,
                                        real& M12, real& M21,
-                                       real& S12)
-  const {
+                                       real& S12) const {
     outmask &= _caps & OUT_MASK;
     if (!( Init() && (arcmode || (_caps & (OUT_MASK & DISTANCE_IN))) ))
       // Uninitialized or impossible distance calculation requested
@@ -171,7 +170,8 @@ namespace GeographicLib {
         // GeodesicExact.
         //     erri = the error in the inverse solution (nm)
         //     errd = the error in the direct solution (series only) (nm)
-        //     errda = the error in the direct solution (series + 1 Newton) (nm)
+        //     errda = the error in the direct solution
+        //             (series + 1 Newton) (nm)
         //
         //       f     erri  errd errda
         //     -1/5    12e6 1.2e9  69e6
diff --git a/src/GeodesicLineExact.cpp b/src/GeodesicLineExact.cpp
index 83c8ffb..43fb89b 100644
--- a/src/GeodesicLineExact.cpp
+++ b/src/GeodesicLineExact.cpp
@@ -139,8 +139,7 @@ namespace GeographicLib {
                                             real& lat2, real& lon2, real& azi2,
                                             real& s12, real& m12,
                                             real& M12, real& M21,
-                                            real& S12)
-  const {
+                                            real& S12) const {
     outmask &= _caps & OUT_MASK;
     if (!( Init() && (arcmode || (_caps & (OUT_MASK & DISTANCE_IN))) ))
       // Uninitialized or impossible distance calculation requested
@@ -204,7 +203,8 @@ namespace GeographicLib {
         : atan2(somg2 * _cchi1 - cchi2 * _somg1,
                 cchi2 * _cchi1 + somg2 * _somg1);
       real lam12 = chi12 -
-        _e2/_f1 * _salp0 * _H0 * (sig12 + (_E.deltaH(ssig2, csig2, dn2) - _H1));
+        _e2/_f1 * _salp0 * _H0 *
+        (sig12 + (_E.deltaH(ssig2, csig2, dn2) - _H1));
       real lon12 = lam12 / Math::degree();
       lon2 = outmask & LONG_UNROLL ? _lon1 + lon12 :
         Math::AngNormalize(Math::AngNormalize(_lon1) +
diff --git a/src/Geohash.cpp b/src/Geohash.cpp
index 52c9d35..ab66bd6 100644
--- a/src/Geohash.cpp
+++ b/src/Geohash.cpp
@@ -2,7 +2,7 @@
  * \file Geohash.cpp
  * \brief Implementation for GeographicLib::Geohash class
  *
- * Copyright (c) Charles Karney (2012-2015) <charles at karney.com> and licensed
+ * Copyright (c) Charles Karney (2012-2017) <charles at karney.com> and licensed
  * under the MIT/X11 License.  For more information, see
  * https://geographiclib.sourceforge.io/
  **********************************************************************/
@@ -14,11 +14,11 @@ namespace GeographicLib {
 
   using namespace std;
 
-  const string Geohash::lcdigits_ = "0123456789bcdefghjkmnpqrstuvwxyz";
-  const string Geohash::ucdigits_ = "0123456789BCDEFGHJKMNPQRSTUVWXYZ";
+  const char* const Geohash::lcdigits_ = "0123456789bcdefghjkmnpqrstuvwxyz";
+  const char* const Geohash::ucdigits_ = "0123456789BCDEFGHJKMNPQRSTUVWXYZ";
 
   void Geohash::Forward(real lat, real lon, int len, std::string& geohash) {
-    static const real shift = pow(real(2), 45);
+    static const real shift = ldexp(real(1), 45);
     static const real loneps = 180 / shift;
     static const real lateps =  90 / shift;
     if (abs(lat) > 90)
@@ -58,7 +58,7 @@ namespace GeographicLib {
 
   void Geohash::Reverse(const std::string& geohash, real& lat, real& lon,
                         int& len, bool centerp) {
-    static const real shift = pow(real(2), 45);
+    static const real shift = ldexp(real(1), 45);
     static const real loneps = 180 / shift;
     static const real lateps =  90 / shift;
     int len1 = min(int(maxlen_), int(geohash.length()));
diff --git a/src/Geoid.cpp b/src/Geoid.cpp
index 607a3b8..252a0b1 100644
--- a/src/Geoid.cpp
+++ b/src/Geoid.cpp
@@ -144,7 +144,7 @@ namespace GeographicLib {
   // for k:1 thru length(warr) do c3n:endcons(c3nrow(k),c3n)$
   // c3n:apply(matrix,c3n)$
   // c0n:part(ratsimp(
-  //     genmatrix(yc,1,length(warr)).abs(c3n).genmatrix(yd,length(pows),1)),2)$
+  //    genmatrix(yc,1,length(warr)).abs(c3n).genmatrix(yd,length(pows),1)),2)$
   // c3n:c0n*c3n$
 
   const int Geoid::c0n_ = 372; // Common denominator
@@ -178,7 +178,7 @@ namespace GeographicLib {
   // c3sf[i,j]:=coeff(coeff(coeff(poly,v[i]),x,pows[j][1]),y,pows[j][2])$
   // c3s:genmatrix(c3sf,length(vv),length(pows))$
   // c0s:part(ratsimp(
-  //     genmatrix(yc,1,length(warr)).abs(c3s).genmatrix(yd,length(pows),1)),2)$
+  //    genmatrix(yc,1,length(warr)).abs(c3s).genmatrix(yd,length(pows),1)),2)$
   // c3s:c0s*c3s$
 
   const int Geoid::c0s_ = 372; // Common denominator
diff --git a/src/Georef.cpp b/src/Georef.cpp
index 66b19a0..98e7b3d 100644
--- a/src/Georef.cpp
+++ b/src/Georef.cpp
@@ -2,8 +2,8 @@
  * \file Georef.cpp
  * \brief Implementation for GeographicLib::Georef class
  *
- * Copyright (c) Charles Karney (2015) <charles at karney.com> and licensed under
- * the MIT/X11 License.  For more information, see
+ * Copyright (c) Charles Karney (2015-2017) <charles at karney.com> and licensed
+ * under the MIT/X11 License.  For more information, see
  * https://geographiclib.sourceforge.io/
  **********************************************************************/
 
@@ -14,10 +14,10 @@ namespace GeographicLib {
 
   using namespace std;
 
-  const string Georef::digits_ = "0123456789";
-  const string Georef::lontile_ = "ABCDEFGHJKLMNPQRSTUVWXYZ";
-  const string Georef::lattile_ = "ABCDEFGHJKLM";
-  const string Georef::degrees_ = "ABCDEFGHJKLMNPQ";
+  const char* const Georef::digits_ = "0123456789";
+  const char* const Georef::lontile_ = "ABCDEFGHJKLMNPQRSTUVWXYZ";
+  const char* const Georef::lattile_ = "ABCDEFGHJKLM";
+  const char* const Georef::degrees_ = "ABCDEFGHJKLMNPQ";
 
   void Georef::Forward(real lat, real lon, int prec, std::string& georef) {
     if (abs(lat) > 90)
@@ -37,8 +37,8 @@ namespace GeographicLib {
                                 "long long not wide enough to store 21600e9");
     const long long m = 60000000000LL;
     long long
-      x = (long long)(floor(lon * m)) - lonorig_ * m,
-      y = (long long)(floor(lat * m)) - latorig_ * m;
+      x = (long long)(floor(lon * real(m))) - lonorig_ * m,
+      y = (long long)(floor(lat * real(m))) - latorig_ * m;
     int ilon = int(x / m); int ilat = int(y / m);
     char georef1[maxlen_];
     georef1[0] = lontile_[ilon / tile_];
@@ -109,7 +109,8 @@ namespace GeographicLib {
                               + georef.substr(baselen_));
         if (prec1 > maxprec_)
           throw GeographicErr("More than " + Utility::str(2*maxprec_)
-                              + " digits in georef " + georef.substr(baselen_));
+                              + " digits in georef "
+                              + georef.substr(baselen_));
         for (int i = 0; i < prec1; ++i) {
           int m = i ? base_ : 6;
           unit *= m;
diff --git a/src/Gnomonic.cpp b/src/Gnomonic.cpp
index b06930f..0230f60 100644
--- a/src/Gnomonic.cpp
+++ b/src/Gnomonic.cpp
@@ -28,8 +28,7 @@ namespace GeographicLib {
   {}
 
   void Gnomonic::Forward(real lat0, real lon0, real lat, real lon,
-                         real& x, real& y, real& azi, real& rk)
-    const {
+                         real& x, real& y, real& azi, real& rk) const {
     real azi0, m, M, t;
     _earth.GenInverse(lat0, lon0, lat, lon,
                       Geodesic::AZIMUTH | Geodesic::REDUCEDLENGTH |
@@ -46,8 +45,7 @@ namespace GeographicLib {
   }
 
   void Gnomonic::Reverse(real lat0, real lon0, real x, real y,
-                         real& lat, real& lon, real& azi, real& rk)
-    const {
+                         real& lat, real& lon, real& azi, real& rk) const {
     real
       azi0 = Math::atan2d(x, y),
       rho = Math::hypot(x, y),
diff --git a/src/GravityCircle.cpp b/src/GravityCircle.cpp
index 4f074cd..3909031 100644
--- a/src/GravityCircle.cpp
+++ b/src/GravityCircle.cpp
@@ -16,8 +16,8 @@ namespace GeographicLib {
 
   using namespace std;
 
-  Math::real GravityCircle::Gravity(real lon, real& gx, real& gy, real& gz)
-    const {
+  Math::real GravityCircle::Gravity(real lon,
+                                    real& gx, real& gy, real& gz) const {
     real slam, clam, M[Geocentric::dim2_];
     Math::sincosd(lon, slam, clam);
     real Wres = W(slam, clam, gx, gy, gz);
@@ -47,8 +47,7 @@ namespace GeographicLib {
   }
 
   void GravityCircle::SphericalAnomaly(real lon,
-                                       real& Dg01, real& xi, real& eta)
-    const {
+                                       real& Dg01, real& xi, real& eta) const {
     if ((_caps & SPHERICAL_ANOMALY) != SPHERICAL_ANOMALY) {
       Dg01 = xi = eta = Math::NaN();
       return;
@@ -77,8 +76,7 @@ namespace GeographicLib {
   }
 
   Math::real GravityCircle::V(real slam, real clam,
-                              real& GX, real& GY, real& GZ)
-    const {
+                              real& GX, real& GY, real& GZ) const {
     if ((_caps & GRAVITY) != GRAVITY) {
       GX = GY = GZ = Math::NaN();
       return Math::NaN();
diff --git a/src/GravityModel.cpp b/src/GravityModel.cpp
index add1cad..25fb6e3 100644
--- a/src/GravityModel.cpp
+++ b/src/GravityModel.cpp
@@ -247,8 +247,7 @@ namespace GeographicLib {
   }
 
   void GravityModel::SphericalAnomaly(real lat, real lon, real h,
-                                      real& Dg01, real& xi, real& eta)
-    const {
+                                      real& Dg01, real& xi, real& eta) const {
     real X, Y, Z, M[Geocentric::dim2_];
     _earth.Earth().IntForward(lat, lon, h, X, Y, Z, M);
     real
@@ -258,8 +257,8 @@ namespace GeographicLib {
       P = Math::hypot(X, Y),
       R = Math::hypot(P, Z),
       // psi is geocentric latitude
-      cpsi = R ? P / R : M[7],
-      spsi = R ? Z / R : M[8];
+      cpsi = R != 0 ? P / R : M[7],
+      spsi = R != 0 ? Z / R : M[8];
     // Rotate cartesian into spherical coordinates
     real MC[Geocentric::dim2_];
     Geocentric::Rotation(spsi, cpsi, slam, clam, MC);
@@ -296,8 +295,8 @@ namespace GeographicLib {
     return Wres;
   }
   Math::real GravityModel::Disturbance(real lat, real lon, real h,
-                                       real& deltax, real& deltay, real& deltaz)
-    const {
+                                       real& deltax, real& deltay,
+                                       real& deltaz) const {
     real X, Y, Z, M[Geocentric::dim2_];
     _earth.Earth().IntForward(lat, lon, h, X, Y, Z, M);
     real Tres = InternalT(X, Y, Z, deltax, deltay, deltaz, true, true);
@@ -332,7 +331,7 @@ namespace GeographicLib {
                          CircularEngine(),
                          // N.B. If CAP_DELTA is set then CAP_T should be too.
                          caps & CAP_T ?
-                         _disturbing.Circle(-1, X, Z, (caps & CAP_DELTA) != 0) :
+                         _disturbing.Circle(-1, X, Z, (caps&CAP_DELTA) != 0) :
                          CircularEngine(),
                          caps & CAP_C ?
                          _correction.Circle(invR * X, invR * Z, false) :
diff --git a/src/LambertConformalConic.cpp b/src/LambertConformalConic.cpp
index f919580..0ead34b 100644
--- a/src/LambertConformalConic.cpp
+++ b/src/LambertConformalConic.cpp
@@ -2,7 +2,7 @@
  * \file LambertConformalConic.cpp
  * \brief Implementation for GeographicLib::LambertConformalConic class
  *
- * Copyright (c) Charles Karney (2010-2016) <charles at karney.com> and licensed
+ * Copyright (c) Charles Karney (2010-2017) <charles at karney.com> and licensed
  * under the MIT/X11 License.  For more information, see
  * https://geographiclib.sourceforge.io/
  **********************************************************************/
@@ -169,8 +169,8 @@ namespace GeographicLib {
         //   = log(tchi2 + scchi2) - log(tchi1 + scchi1)
         //
         // then den * (1 - n) =
-        // (log((tchi2 + scchi2)/(2*scbet2)) - log((tchi1 + scchi1)/(2*scbet1)))
-        // / (tphi2 - tphi1)
+        // (log((tchi2 + scchi2)/(2*scbet2)) -
+        //  log((tchi1 + scchi1)/(2*scbet1))) / (tphi2 - tphi1)
         // = Dlog1p(a2, a1) * (tchi2+scchi2 + tchi1+scchi1)/(4*scbet1*scbet2)
         //   * fm * Q
         //
@@ -329,8 +329,8 @@ namespace GeographicLib {
   }
 
   void LambertConformalConic::Forward(real lon0, real lat, real lon,
-                                      real& x, real& y, real& gamma, real& k)
-    const {
+                                      real& x, real& y,
+                                      real& gamma, real& k) const {
     lon = Math::AngDiff(lon0, lon);
     // From Snyder, we have
     //
@@ -358,9 +358,9 @@ namespace GeographicLib {
                           (tchi > 0 ? 1/(scchi + tchi) : (scchi - tchi))
                           - (_t0nm1 + 1))/(-_n) :
                          Dexp(-_n * psi, -_n * _psi0) * dpsi);
-    x = (_nrho0 + _n * drho) * (_n ? stheta / _n : lam);
+    x = (_nrho0 + _n * drho) * (_n != 0 ? stheta / _n : lam);
     y = _nrho0 *
-      (_n ?
+      (_n != 0 ?
        (ctheta < 0 ? 1 - ctheta : Math::sq(stheta)/(1 + ctheta)) / _n : 0)
       - drho * ctheta;
     k = _k0 * (scbet/_scbet0) /
@@ -372,8 +372,7 @@ namespace GeographicLib {
 
   void LambertConformalConic::Reverse(real lon0, real x, real y,
                                       real& lat, real& lon,
-                                      real& gamma, real& k)
-    const {
+                                      real& gamma, real& k) const {
     // From Snyder, we have
     //
     //        x = rho * sin(theta)
@@ -389,7 +388,7 @@ namespace GeographicLib {
     y *= _sign;
     real
       // Guard against 0 * inf in computation of ny
-      nx = _n * x, ny = _n ? _n * y : 0, y1 = _nrho0 - ny,
+      nx = _n * x, ny = _n != 0 ? _n * y : 0, y1 = _nrho0 - ny,
       den = Math::hypot(nx, y1) + _nrho0, // 0 implies origin with polar aspect
       // isfinite test is to avoid inf/inf
       drho = ((den != 0 && Math::isfinite(den))
@@ -429,12 +428,12 @@ namespace GeographicLib {
     real
       tphi = Math::tauf(tchi, _es),
       scbet = hyp(_fm * tphi), scchi = hyp(tchi),
-      lam = _n ? gamma / _n : x / y1;
+      lam = _n != 0 ? gamma / _n : x / y1;
     lat = Math::atand(_sign * tphi);
     lon = lam / Math::degree();
     lon = Math::AngNormalize(lon + Math::AngNormalize(lon0));
     k = _k0 * (scbet/_scbet0) /
-      (exp(_nc ? - (Math::sq(_nc)/(1 + _n)) * dpsi : 0)
+      (exp(_nc != 0 ? - (Math::sq(_nc)/(1 + _n)) * dpsi : 0)
        * (tchi >= 0 ? scchi + tchi : 1 / (scchi - tchi)) / (_scchi0 + _tchi0));
     gamma /= _sign * Math::degree();
   }
diff --git a/src/MGRS.cpp b/src/MGRS.cpp
index 646b86c..5350b90 100644
--- a/src/MGRS.cpp
+++ b/src/MGRS.cpp
@@ -2,7 +2,7 @@
  * \file MGRS.cpp
  * \brief Implementation for GeographicLib::MGRS class
  *
- * Copyright (c) Charles Karney (2008-2015) <charles at karney.com> and licensed
+ * Copyright (c) Charles Karney (2008-2017) <charles at karney.com> and licensed
  * under the MIT/X11 License.  For more information, see
  * https://geographiclib.sourceforge.io/
  **********************************************************************/
@@ -14,25 +14,25 @@ namespace GeographicLib {
 
   using namespace std;
 
-  const string MGRS::hemispheres_ = "SN";
-  const string MGRS::utmcols_[3] = { "ABCDEFGH", "JKLMNPQR", "STUVWXYZ" };
-  const string MGRS::utmrow_ = "ABCDEFGHJKLMNPQRSTUV";
-  const string MGRS::upscols_[4] =
+  const char* const MGRS::hemispheres_ = "SN";
+  const char* const MGRS::utmcols_[] = { "ABCDEFGH", "JKLMNPQR", "STUVWXYZ" };
+  const char* const MGRS::utmrow_ = "ABCDEFGHJKLMNPQRSTUV";
+  const char* const MGRS::upscols_[] =
     { "JKLPQRSTUXYZ", "ABCFGHJKLPQR", "RSTUXYZ", "ABCFGHJ" };
-  const string MGRS::upsrows_[2] =
+  const char* const MGRS::upsrows_[] =
     { "ABCDEFGHJKLMNPQRSTUVWXYZ", "ABCDEFGHJKLMNP" };
-  const string MGRS::latband_ = "CDEFGHJKLMNPQRSTUVWX";
-  const string MGRS::upsband_ = "ABYZ";
-  const string MGRS::digits_ = "0123456789";
+  const char* const MGRS::latband_ = "CDEFGHJKLMNPQRSTUVWX";
+  const char* const MGRS::upsband_ = "ABYZ";
+  const char* const MGRS::digits_ = "0123456789";
 
-  const int MGRS::mineasting_[4] =
+  const int MGRS::mineasting_[] =
     { minupsSind_, minupsNind_, minutmcol_, minutmcol_ };
-  const int MGRS::maxeasting_[4] =
+  const int MGRS::maxeasting_[] =
     { maxupsSind_, maxupsNind_, maxutmcol_, maxutmcol_ };
-  const int MGRS::minnorthing_[4] =
+  const int MGRS::minnorthing_[] =
     { minupsSind_, minupsNind_,
       minutmSrow_, minutmSrow_ - (maxutmSrow_ - minutmNrow_) };
-  const int MGRS::maxnorthing_[4] =
+  const int MGRS::maxnorthing_[] =
     { maxupsSind_, maxupsNind_,
       maxutmNrow_ + (maxutmSrow_ - minutmNrow_), maxutmNrow_ };
 
@@ -40,7 +40,7 @@ namespace GeographicLib {
                      int prec, std::string& mgrs) {
     // The smallest angle s.t., 90 - angeps() < 90 (approx 50e-12 arcsec)
     // 7 = ceil(log_2(90))
-    static const real angeps = pow(real(0.5), Math::digits() - 7);
+    static const real angeps = ldexp(real(1), -(Math::digits() - 7));
     if (zone == UTMUPS::INVALID ||
         Math::isnan(x) || Math::isnan(y) || Math::isnan(lat)) {
       mgrs = "INVALID";
@@ -94,7 +94,8 @@ namespace GeographicLib {
       int iband = (northp ? 2 : 0) + (eastp ? 1 : 0);
       mgrs1[z++] = upsband_[iband];
       mgrs1[z++] = upscols_[iband][xh - (eastp ? upseasting_ :
-                                         (northp ? minupsNind_ : minupsSind_))];
+                                         (northp ? minupsNind_ :
+                                          minupsSind_))];
       mgrs1[z++] = upsrows_[northp][yh - (northp ? minupsNind_ : minupsSind_)];
     }
     if (prec > 0) {
@@ -124,7 +125,7 @@ namespace GeographicLib {
       // the actual latitude.
       ys /= tile_;
       if (abs(ys) < 1)
-        lat = 0.9 * ys;         // accurate enough estimate near equator
+        lat = real(0.9) * ys;         // accurate enough estimate near equator
       else {
         real
           // The poleward bound is a fit from above of lat(x,y)
@@ -178,7 +179,7 @@ namespace GeographicLib {
       throw GeographicErr("MGRS string too short " + mgrs);
     bool utmp = zone1 != UTMUPS::UPS;
     int zonem1 = zone1 - 1;
-    const string& band = utmp ? latband_ : upsband_;
+    const char* band = utmp ? latband_ : upsband_;
     int iband = Utility::lookup(band, mgrs[p++]);
     if (iband < 0)
       throw GeographicErr("Band letter " + Utility::str(mgrs[p-1]) + " not in "
@@ -206,8 +207,8 @@ namespace GeographicLib {
       return;
     } else if (len - p < 2)
       throw GeographicErr("Missing row letter in " + mgrs);
-    const string& col = utmp ? utmcols_[zonem1 % 3] : upscols_[iband];
-    const string& row = utmp ? utmrow_ : upsrows_[northp1];
+    const char* col = utmp ? utmcols_[zonem1 % 3] : upscols_[iband];
+    const char* row = utmp ? utmrow_ : upsrows_[northp1];
     int icol = Utility::lookup(col, mgrs[p++]);
     if (icol < 0)
       throw GeographicErr("Column letter " + Utility::str(mgrs[p-1])
@@ -282,7 +283,7 @@ namespace GeographicLib {
     // The smallest length s.t., 1.0e7 - eps() < 1.0e7 (approx 1.9 nm)
     // 25 = ceil(log_2(2e7)) -- use half circumference here because
     // northing 195e5 is a legal in the "southern" hemisphere.
-    static const real eps = pow(real(0.5), Math::digits() - 25);
+    static const real eps = ldexp(real(1), -(Math::digits() - 25));
     int
       ix = int(floor(x / tile_)),
       iy = int(floor(y / tile_)),
@@ -418,7 +419,8 @@ namespace GeographicLib {
       throw GeographicErr("MGRS::Check: Svalbard exception creates a gap");
     UTMUPS::Reverse(0, true , 20*t, 13*t, lat, lon);
     if (!( lat <  84 ))
-      throw GeographicErr("MGRS::Check: North UPS doesn't reach latitude = 84");
+      throw
+        GeographicErr("MGRS::Check: North UPS doesn't reach latitude = 84");
     UTMUPS::Reverse(0, false, 20*t,  8*t, lat, lon);
     if (!( lat > -80 ))
       throw
diff --git a/src/MagneticModel.cpp b/src/MagneticModel.cpp
index fab4b1e..587132b 100644
--- a/src/MagneticModel.cpp
+++ b/src/MagneticModel.cpp
@@ -236,13 +236,13 @@ namespace GeographicLib {
                                       real& Ht, real& Ft,
                                       real& Dt, real& It) {
     H = Math::hypot(Bx, By);
-    Ht = H ? (Bx * Bxt + By * Byt) / H : Math::hypot(Bxt, Byt);
-    D = H ? Math::atan2d(Bx, By) : Math::atan2d(Bxt, Byt);
-    Dt = (H ? (By * Bxt - Bx * Byt) / Math::sq(H) : 0) / Math::degree();
+    Ht = H != 0 ? (Bx * Bxt + By * Byt) / H : Math::hypot(Bxt, Byt);
+    D = H != 0 ? Math::atan2d(Bx, By) : Math::atan2d(Bxt, Byt);
+    Dt = (H != 0 ? (By * Bxt - Bx * Byt) / Math::sq(H) : 0) / Math::degree();
     F = Math::hypot(H, Bz);
-    Ft = F ? (H * Ht + Bz * Bzt) / F : Math::hypot(Ht, Bzt);
-    I = F ? Math::atan2d(-Bz, H) : Math::atan2d(-Bzt, Ht);
-    It = (F ? (Bz * Ht - H * Bzt) / Math::sq(F) : 0) / Math::degree();
+    Ft = F != 0 ? (H * Ht + Bz * Bzt) / F : Math::hypot(Ht, Bzt);
+    I = F != 0 ? Math::atan2d(-Bz, H) : Math::atan2d(-Bzt, Ht);
+    It = (F != 0 ? (Bz * Ht - H * Bzt) / Math::sq(F) : 0) / Math::degree();
   }
 
   std::string MagneticModel::DefaultMagneticPath() {
diff --git a/src/NormalGravity.cpp b/src/NormalGravity.cpp
index 0181b66..c267cde 100644
--- a/src/NormalGravity.cpp
+++ b/src/NormalGravity.cpp
@@ -51,7 +51,8 @@ namespace GeographicLib {
     _gammap = _GM / (_a * _a) + 2 * P * _b * _omega2;
     // k = gammae * (b * gammap / (a * gammae) - 1)
     //   = (b * gammap - a * gammae) / a
-    _k = -_e2 * _GM / (_a * _b) + _omega2 * (P * (_a + 2 * _b * (1 - _f)) + _a);
+    _k = -_e2 * _GM / (_a * _b) +
+      _omega2 * (P * (_a + 2 * _b * (1 - _f)) + _a);
     // f* = (gammap - gammae) / gammae
     _fstar = (-_f * _GM / (_a * _b) + _omega2 * (P * (_a + 2 * _b) + _a)) /
       _gammae;
@@ -180,13 +181,13 @@ namespace GeographicLib {
   }
 
   Math::real NormalGravity::V0(real X, real Y, real Z,
-                               real& GammaX, real& GammaY, real& GammaZ)
-    const {
+                               real& GammaX, real& GammaY, real& GammaZ) const
+  {
     // See H+M, Sec 6-2
     real
       p = Math::hypot(X, Y),
-      clam = p ? X/p : 1,
-      slam = p ? Y/p : 0,
+      clam = p != 0 ? X/p : 1,
+      slam = p != 0 ? Y/p : 0,
       r = Math::hypot(p, Z);
     if (_f < 0) swap(p, Z);
     real
@@ -198,11 +199,11 @@ namespace GeographicLib {
       u = sqrt((Q >= 0 ? (Q + disc) : t2 / (disc - Q)) / 2),
       uE = Math::hypot(u, _E),
       // H+M, Eq 6-8b
-      sbet = u ? Z * uE : Math::copysign(sqrt(-Q), Z),
-      cbet = u ? p * u : p,
+      sbet = u != 0 ? Z * uE : Math::copysign(sqrt(-Q), Z),
+      cbet = u != 0 ? p * u : p,
       s = Math::hypot(cbet, sbet);
-    sbet = s ? sbet/s : 1;
-    cbet = s ? cbet/s : 0;
+    sbet = s != 0 ? sbet/s : 1;
+    cbet = s != 0 ? cbet/s : 0;
     real
       z = _E/u,
       z2 = Math::sq(z),
@@ -226,17 +227,16 @@ namespace GeographicLib {
       // H+M, Eq 6-10
       gamu = - (_GM + (_aomega2 * qp * ang)) * invw / Math::sq(uE),
       gamb = _aomega2 * q * sbet * cbet * invw / uE,
-      t = u * invw / uE;
+      t = u * invw / uE,
+      gamp = t * cbet * gamu - invw * sbet * gamb;
     // H+M, Eq 6-12
-    GammaX = t * cbet * gamu - invw * sbet * gamb;
-    GammaY = GammaX * slam;
-    GammaX *= clam;
+    GammaX = gamp * clam;
+    GammaY = gamp * slam;
     GammaZ = invw * sbet * gamu + t * cbet * gamb;
     return Vres;
   }
 
-  Math::real NormalGravity::Phi(real X, real Y, real& fX, real& fY)
-    const {
+  Math::real NormalGravity::Phi(real X, real Y, real& fX, real& fY) const {
     fX = _omega2 * X;
     fY = _omega2 * Y;
     // N.B. fZ = 0;
@@ -244,8 +244,7 @@ namespace GeographicLib {
   }
 
   Math::real NormalGravity::U(real X, real Y, real Z,
-                              real& gammaX, real& gammaY, real& gammaZ)
-    const {
+                              real& gammaX, real& gammaY, real& gammaZ) const {
     real fX, fY;
     real Ures = V0(X, Y, Z, gammaX, gammaY, gammaZ) + Phi(X, Y, fX, fY);
     gammaX += fX;
@@ -254,8 +253,7 @@ namespace GeographicLib {
   }
 
   Math::real NormalGravity::Gravity(real lat, real h,
-                                    real& gammay, real& gammaz)
-    const {
+                                    real& gammay, real& gammaz) const {
     real X, Y, Z;
     real M[Geocentric::dim2_];
     _earth.IntForward(lat, 0, h, X, Y, Z, M);
diff --git a/src/OSGB.cpp b/src/OSGB.cpp
index 3a63a11..dba3a2f 100644
--- a/src/OSGB.cpp
+++ b/src/OSGB.cpp
@@ -2,7 +2,7 @@
  * \file OSGB.cpp
  * \brief Implementation for GeographicLib::OSGB class
  *
- * Copyright (c) Charles Karney (2010-2014) <charles at karney.com> and licensed
+ * Copyright (c) Charles Karney (2010-2017) <charles at karney.com> and licensed
  * under the MIT/X11 License.  For more information, see
  * https://geographiclib.sourceforge.io/
  **********************************************************************/
@@ -14,8 +14,8 @@ namespace GeographicLib {
 
   using namespace std;
 
-  const string OSGB::letters_ = "ABCDEFGHJKLMNOPQRSTUVWXYZ";
-  const string OSGB::digits_ = "0123456789";
+  const char* const OSGB::letters_ = "ABCDEFGHJKLMNOPQRSTUVWXYZ";
+  const char* const OSGB::digits_ = "0123456789";
 
   const TransverseMercator& OSGB::OSGBTM() {
     static const TransverseMercator osgbtm(MajorRadius(), Flattening(),
@@ -55,7 +55,8 @@ namespace GeographicLib {
                         * tilegrid_ + (xh / tilegrid_)];
     grid[z++] = letters_[(tilegrid_ - (yh % tilegrid_) - 1)
                         * tilegrid_ + (xh % tilegrid_)];
-    real mult = pow(real(base_), max(tilelevel_ - prec, 0));
+    // Need extra real because, since C++11, pow(float, int) returns double
+    real mult = real(pow(real(base_), max(tilelevel_ - prec, 0)));
     int
       ix = int(floor(xf / mult)),
       iy = int(floor(yf / mult));
@@ -68,7 +69,7 @@ namespace GeographicLib {
     if (prec > tilelevel_) {
       xf -= floor(xf / mult);
       yf -= floor(yf / mult);
-      mult = pow(real(base_), prec - tilelevel_);
+      mult = real(pow(real(base_), prec - tilelevel_));
       ix = int(floor(xf * mult));
       iy = int(floor(yf * mult));
       for (int c = prec - tilelevel_; c--;) {
diff --git a/src/PolarStereographic.cpp b/src/PolarStereographic.cpp
index fbf6865..f65f1b3 100644
--- a/src/PolarStereographic.cpp
+++ b/src/PolarStereographic.cpp
@@ -2,7 +2,7 @@
  * \file PolarStereographic.cpp
  * \brief Implementation for GeographicLib::PolarStereographic class
  *
- * Copyright (c) Charles Karney (2008-2016) <charles at karney.com> and licensed
+ * Copyright (c) Charles Karney (2008-2017) <charles at karney.com> and licensed
  * under the MIT/X11 License.  For more information, see
  * https://geographiclib.sourceforge.io/
  **********************************************************************/
@@ -59,8 +59,8 @@ namespace GeographicLib {
   //   secphip = taup = exp(-e * atanh(e)) * tau = exp(-e * atanh(e)) * secphi
 
   void PolarStereographic::Forward(bool northp, real lat, real lon,
-                                   real& x, real& y, real& gamma, real& k)
-    const {
+                                   real& x, real& y,
+                                   real& gamma, real& k) const {
     lat = Math::LatFix(lat);
     lat *= northp ? 1 : -1;
     real
@@ -79,16 +79,17 @@ namespace GeographicLib {
   }
 
   void PolarStereographic::Reverse(bool northp, real x, real y,
-                                   real& lat, real& lon, real& gamma, real& k)
-    const {
+                                   real& lat, real& lon,
+                                   real& gamma, real& k) const {
     real
       rho = Math::hypot(x, y),
-      t = rho ? rho / (2 * _k0 * _a / _c) :
+      t = rho != 0 ? rho / (2 * _k0 * _a / _c) :
       Math::sq(numeric_limits<real>::epsilon()),
       taup = (1 / t - t) / 2,
       tau = Math::tauf(taup, _es),
       secphi = Math::hypot(real(1), tau);
-    k = rho ? (rho / _a) * secphi * sqrt(_e2m + _e2 / Math::sq(secphi)) : _k0;
+    k = rho != 0 ? (rho / _a) * secphi * sqrt(_e2m + _e2 / Math::sq(secphi)) :
+      _k0;
     lat = (northp ? 1 : -1) * Math::atand(tau);
     lon = Math::atan2d(x, northp ? -y : y );
     gamma = Math::AngNormalize(northp ? lon : -lon);
diff --git a/src/PolygonArea.cpp b/src/PolygonArea.cpp
index f234ae2..a18165f 100644
--- a/src/PolygonArea.cpp
+++ b/src/PolygonArea.cpp
@@ -22,7 +22,8 @@ namespace GeographicLib {
       _lon0 = _lon1 = lon;
     } else {
       real s12, S12, t;
-      _earth.GenInverse(_lat1, _lon1, lat, lon, _mask, s12, t, t, t, t, t, S12);
+      _earth.GenInverse(_lat1, _lon1, lat, lon, _mask,
+                        s12, t, t, t, t, t, S12);
       _perimetersum += s12;
       if (!_polyline) {
         _areasum += S12;
@@ -52,7 +53,8 @@ namespace GeographicLib {
 
   template <class GeodType>
   unsigned PolygonAreaT<GeodType>::Compute(bool reverse, bool sign,
-                                           real& perimeter, real& area) const {
+                                           real& perimeter, real& area) const
+  {
     real s12, S12, t;
     if (_num < 2) {
       perimeter = 0;
@@ -148,7 +150,8 @@ namespace GeographicLib {
   template <class GeodType>
   unsigned PolygonAreaT<GeodType>::TestEdge(real azi, real s,
                                             bool reverse, bool sign,
-                                            real& perimeter, real& area) const {
+                                            real& perimeter, real& area) const
+  {
     if (_num == 0) {            // we don't have a starting point!
       perimeter = Math::NaN();
       if (!_polyline)
@@ -169,7 +172,8 @@ namespace GeographicLib {
       tempsum += S12;
       crossings += transitdirect(_lon1, lon);
       lon = Math::AngNormalize(lon);
-      _earth.GenInverse(lat, lon, _lat0, _lon0, _mask, s12, t, t, t, t, t, S12);
+      _earth.GenInverse(lat, lon, _lat0, _lon0, _mask,
+                        s12, t, t, t, t, t, S12);
       perimeter += s12;
       tempsum += S12;
       crossings += transit(lon, _lon0);
diff --git a/src/Rhumb.cpp b/src/Rhumb.cpp
index 8b4cb56..e9a16e9 100644
--- a/src/Rhumb.cpp
+++ b/src/Rhumb.cpp
@@ -3,7 +3,7 @@
  * \brief Implementation for GeographicLib::Rhumb and GeographicLib::RhumbLine
  * classes
  *
- * Copyright (c) Charles Karney (2014-2015) <charles at karney.com> and licensed
+ * Copyright (c) Charles Karney (2014-2017) <charles at karney.com> and licensed
  * under the MIT/X11 License.  For more information, see
  * https://geographiclib.sourceforge.io/
  **********************************************************************/
@@ -140,7 +140,8 @@ namespace GeographicLib {
   }
 
   const Rhumb& Rhumb::WGS84() {
-    static const Rhumb wgs84(Constants::WGS84_a(), Constants::WGS84_f(), false);
+    static const Rhumb
+      wgs84(Constants::WGS84_a(), Constants::WGS84_f(), false);
     return wgs84;
   }
 
@@ -176,7 +177,7 @@ namespace GeographicLib {
     const EllipticFunction& ei = _ell._ell;
     real d = x - y;
     if (x * y <= 0)
-      return d ? (ei.E(x) - ei.E(y)) / d : 1;
+      return d != 0 ? (ei.E(x) - ei.E(y)) / d : 1;
     // See DLMF: Eqs (19.11.2) and (19.11.4) letting
     // theta -> x, phi -> -y, psi -> z
     //
@@ -197,7 +198,7 @@ namespace GeographicLib {
       ((cx + cy) * (sx * ei.Delta(sy, cy) + sy * ei.Delta(sx, cx))),
       t = d * Dt, Dsz = 2 * Dt / (1 + t*t),
       sz = d * Dsz, cz = (1 - t) * (1 + t) / (1 + t*t);
-    return ((sz ? ei.E(sz, cz, ei.Delta(sz, cz)) / sz : 1)
+    return ((sz != 0 ? ei.E(sz, cz, ei.Delta(sz, cz)) / sz : 1)
             - ei.k2() * sx * sy) * Dsz;
   }
 
@@ -253,8 +254,8 @@ namespace GeographicLib {
     //    t =  (c[0] * I  - b[2]) * f[0](x,y) + b[1] * f[1](x,y)
     // c[0] is not accessed for s = t[2]
     real p = x + y, d = x - y,
-      cp = cos(p), cd =     cos(d),
-      sp = sin(p), sd = d ? sin(d)/d : 1,
+      cp = cos(p), cd =          cos(d),
+      sp = sin(p), sd = d != 0 ? sin(d)/d : 1,
       m = 2 * cp * cd, s = sp * sd;
     // 2x2 matrices stored in row-major order
     const real a[4] = {m, -s * d * d, -4 * s, m};
@@ -350,7 +351,7 @@ namespace GeographicLib {
       mu2 = _mu1 + mu12;
     real psi2, lat2x, lon2x;
     if (abs(mu2) <= 90) {
-      if (_calp) {
+      if (_calp != 0) {
         lat2x = _rh._ell.InverseRectifyingLatitude(mu2);
         real psi12 = _rh.DRectifyingToIsometric(  mu2 * Math::degree(),
                                                  _mu1 * Math::degree()) * mu12;
diff --git a/src/SphericalEngine.cpp b/src/SphericalEngine.cpp
index 302337c..a1e47d6 100644
--- a/src/SphericalEngine.cpp
+++ b/src/SphericalEngine.cpp
@@ -2,8 +2,8 @@
  * \file SphericalEngine.cpp
  * \brief Implementation for GeographicLib::SphericalEngine class
  *
- * Copyright (c) Charles Karney (2011) <charles at karney.com> and licensed under
- * the MIT/X11 License.  For more information, see
+ * Copyright (c) Charles Karney (2011-2017) <charles at karney.com> and licensed
+ * under the MIT/X11 License.  For more information, see
  * https://geographiclib.sourceforge.io/
  *
  * The general sum is\verbatim
@@ -144,8 +144,10 @@ namespace GeographicLib {
 
   using namespace std;
 
-  const vector<Math::real> SphericalEngine::Z_(0);
-  vector<Math::real> SphericalEngine::root_(0);
+  vector<Math::real>& SphericalEngine::sqrttable() {
+    static vector<real> sqrttable(0);
+    return sqrttable;
+  }
 
   template<bool gradp, SphericalEngine::normalization norm, int L>
   Math::real SphericalEngine::Value(const coeff c[], const real f[],
@@ -159,11 +161,11 @@ namespace GeographicLib {
 
     real
       p = Math::hypot(x, y),
-      cl = p ? x / p : 1,       // cos(lambda); at pole, pick lambda = 0
-      sl = p ? y / p : 0,       // sin(lambda)
+      cl = p != 0 ? x / p : 1,  // cos(lambda); at pole, pick lambda = 0
+      sl = p != 0 ? y / p : 0,  // sin(lambda)
       r = Math::hypot(z, p),
-      t = r ? z / r : 0,            // cos(theta); at origin, pick theta = pi/2
-      u = r ? max(p / r, eps()) : 1, // sin(theta); but avoid the pole
+      t = r != 0 ? z / r : 0,   // cos(theta); at origin, pick theta = pi/2
+      u = r != 0 ? max(p / r, eps()) : 1, // sin(theta); but avoid the pole
       q = a / r;
     real
       q2 = Math::sq(q),
@@ -178,28 +180,30 @@ namespace GeographicLib {
     real vtc = 0, vtc2 = 0, vts = 0, vts2 = 0;   // vt[N + 1], vt[N + 2]
     real vlc = 0, vlc2 = 0, vls = 0, vls2 = 0;   // vl[N + 1], vl[N + 2]
     int k[L];
+    const vector<real>& root( sqrttable() );
     for (int m = M; m >= 0; --m) {   // m = M .. 0
       // Initialize inner sum
-      real wc  = 0, wc2  = 0, ws  = 0, ws2  = 0; // w [N - m + 1], w [N - m + 2]
-      real wrc = 0, wrc2 = 0, wrs = 0, wrs2 = 0; // wr[N - m + 1], wr[N - m + 2]
-      real wtc = 0, wtc2 = 0, wts = 0, wts2 = 0; // wt[N - m + 1], wt[N - m + 2]
+      real
+        wc  = 0, wc2  = 0, ws  = 0, ws2  = 0, // w [N - m + 1], w [N - m + 2]
+        wrc = 0, wrc2 = 0, wrs = 0, wrs2 = 0, // wr[N - m + 1], wr[N - m + 2]
+        wtc = 0, wtc2 = 0, wts = 0, wts2 = 0; // wt[N - m + 1], wt[N - m + 2]
       for (int l = 0; l < L; ++l)
         k[l] = c[l].index(N, m) + 1;
       for (int n = N; n >= m; --n) {             // n = N .. m; l = N - m .. 0
         real w, A, Ax, B, R;    // alpha[l], beta[l + 1]
         switch (norm) {
         case FULL:
-          w = root_[2 * n + 1] / (root_[n - m + 1] * root_[n + m + 1]);
-          Ax = q * w * root_[2 * n + 3];
+          w = root[2 * n + 1] / (root[n - m + 1] * root[n + m + 1]);
+          Ax = q * w * root[2 * n + 3];
           A = t * Ax;
-          B = - q2 * root_[2 * n + 5] /
-            (w * root_[n - m + 2] * root_[n + m + 2]);
+          B = - q2 * root[2 * n + 5] /
+            (w * root[n - m + 2] * root[n + m + 2]);
           break;
         case SCHMIDT:
-          w = root_[n - m + 1] * root_[n + m + 1];
+          w = root[n - m + 1] * root[n + m + 1];
           Ax = q * (2 * n + 1) / w;
           A = t * Ax;
-          B = - q2 * w / (root_[n - m + 2] * root_[n + m + 2]);
+          B = - q2 * w / (root[n - m + 2] * root[n + m + 2]);
           break;
         default: break;       // To suppress warning message from Visual Studio
         }
@@ -230,14 +234,14 @@ namespace GeographicLib {
         real v, A, B;           // alpha[m], beta[m + 1]
         switch (norm) {
         case FULL:
-          v = root_[2] * root_[2 * m + 3] / root_[m + 1];
+          v = root[2] * root[2 * m + 3] / root[m + 1];
           A = cl * v * uq;
-          B = - v * root_[2 * m + 5] / (root_[8] * root_[m + 2]) * uq2;
+          B = - v * root[2 * m + 5] / (root[8] * root[m + 2]) * uq2;
           break;
         case SCHMIDT:
-          v = root_[2] * root_[2 * m + 1] / root_[m + 1];
+          v = root[2] * root[2 * m + 1] / root[m + 1];
           A = cl * v * uq;
-          B = - v * root_[2 * m + 3] / (root_[8] * root_[m + 2]) * uq2;
+          B = - v * root[2 * m + 3] / (root[8] * root[m + 2]) * uq2;
           break;
         default: break;       // To suppress warning message from Visual Studio
         }
@@ -257,12 +261,12 @@ namespace GeographicLib {
         real A, B, qs;
         switch (norm) {
         case FULL:
-          A = root_[3] * uq;       // F[1]/(q*cl) or F[1]/(q*sl)
-          B = - root_[15]/2 * uq2; // beta[1]/q
+          A = root[3] * uq;       // F[1]/(q*cl) or F[1]/(q*sl)
+          B = - root[15]/2 * uq2; // beta[1]/q
           break;
         case SCHMIDT:
           A = uq;
-          B = - root_[3]/2 * uq2;
+          B = - root[3]/2 * uq2;
           break;
         default: break;       // To suppress warning message from Visual Studio
         }
@@ -301,36 +305,38 @@ namespace GeographicLib {
 
     real
       r = Math::hypot(z, p),
-      t = r ? z / r : 0,            // cos(theta); at origin, pick theta = pi/2
-      u = r ? max(p / r, eps()) : 1, // sin(theta); but avoid the pole
+      t = r != 0 ? z / r : 0,   // cos(theta); at origin, pick theta = pi/2
+      u = r != 0 ? max(p / r, eps()) : 1, // sin(theta); but avoid the pole
       q = a / r;
     real
       q2 = Math::sq(q),
       tu = t / u;
     CircularEngine circ(M, gradp, norm, a, r, u, t);
     int k[L];
+    const vector<real>& root( sqrttable() );
     for (int m = M; m >= 0; --m) {   // m = M .. 0
       // Initialize inner sum
-      real wc  = 0, wc2  = 0, ws  = 0, ws2  = 0; // w [N - m + 1], w [N - m + 2]
-      real wrc = 0, wrc2 = 0, wrs = 0, wrs2 = 0; // wr[N - m + 1], wr[N - m + 2]
-      real wtc = 0, wtc2 = 0, wts = 0, wts2 = 0; // wt[N - m + 1], wt[N - m + 2]
+      real
+        wc  = 0, wc2  = 0, ws  = 0, ws2  = 0, // w [N - m + 1], w [N - m + 2]
+        wrc = 0, wrc2 = 0, wrs = 0, wrs2 = 0, // wr[N - m + 1], wr[N - m + 2]
+        wtc = 0, wtc2 = 0, wts = 0, wts2 = 0; // wt[N - m + 1], wt[N - m + 2]
       for (int l = 0; l < L; ++l)
         k[l] = c[l].index(N, m) + 1;
       for (int n = N; n >= m; --n) {             // n = N .. m; l = N - m .. 0
         real w, A, Ax, B, R;    // alpha[l], beta[l + 1]
         switch (norm) {
         case FULL:
-          w = root_[2 * n + 1] / (root_[n - m + 1] * root_[n + m + 1]);
-          Ax = q * w * root_[2 * n + 3];
+          w = root[2 * n + 1] / (root[n - m + 1] * root[n + m + 1]);
+          Ax = q * w * root[2 * n + 3];
           A = t * Ax;
-          B = - q2 * root_[2 * n + 5] /
-            (w * root_[n - m + 2] * root_[n + m + 2]);
+          B = - q2 * root[2 * n + 5] /
+            (w * root[n - m + 2] * root[n + m + 2]);
           break;
         case SCHMIDT:
-          w = root_[n - m + 1] * root_[n + m + 1];
+          w = root[n - m + 1] * root[n + m + 1];
           Ax = q * (2 * n + 1) / w;
           A = t * Ax;
-          B = - q2 * w / (root_[n - m + 2] * root_[n + m + 2]);
+          B = - q2 * w / (root[n - m + 2] * root[n + m + 2]);
           break;
         default: break;       // To suppress warning message from Visual Studio
         }
@@ -369,12 +375,13 @@ namespace GeographicLib {
 
   void SphericalEngine::RootTable(int N) {
     // Need square roots up to max(2 * N + 5, 15).
-    int L = max(2 * N + 5, 15) + 1, oldL = int(root_.size());
+    vector<real>& root( sqrttable() );
+    int L = max(2 * N + 5, 15) + 1, oldL = int(root.size());
     if (oldL >= L)
       return;
-    root_.resize(L);
+    root.resize(L);
     for (int l = oldL; l < L; ++l)
-      root_[l] = sqrt(real(l));
+      root[l] = sqrt(real(l));
   }
 
   void SphericalEngine::coeff::readcoeffs(std::istream& stream, int& N, int& M,
diff --git a/src/TransverseMercator.cpp b/src/TransverseMercator.cpp
index 17d9714..34ef47d 100644
--- a/src/TransverseMercator.cpp
+++ b/src/TransverseMercator.cpp
@@ -2,12 +2,11 @@
  * \file TransverseMercator.cpp
  * \brief Implementation for GeographicLib::TransverseMercator class
  *
- * Copyright (c) Charles Karney (2008-2016) <charles at karney.com> and licensed
+ * Copyright (c) Charles Karney (2008-2017) <charles at karney.com> and licensed
  * under the MIT/X11 License.  For more information, see
  * https://geographiclib.sourceforge.io/
  *
- * This implementation follows closely
- * <a href="http://www.jhs-suositukset.fi/suomi/jhs154"> JHS 154, ETRS89 -
+ * This implementation follows closely JHS 154, ETRS89 -
  * järjestelmään liittyvät karttaprojektiot,
  * tasokoordinaatistot ja karttalehtijako</a> (Map projections, plane
  * coordinates, and map sheet index for ETRS89), published by JUHTA, Finnish
@@ -33,12 +32,10 @@
  * to an integer between 4 and 8, then this specifies the order of the series
  * used for the forward and reverse transformations.  The default value is 6.
  * (The series accurate to 12th order is given in \ref tmseries.)
- *
- * Other equivalent implementations are given in
- *  - http://www.ign.fr/DISPLAY/000/526/702/5267021/NTG_76.pdf
- *  - http://www.lantmateriet.se/upload/filer/kartor/geodesi_gps_och_detaljmatning/geodesi/Formelsamling/Gauss_Conformal_Projection.pdf
  **********************************************************************/
 
+#include <iostream>
+#include <complex>
 #include <GeographicLib/TransverseMercator.hpp>
 
 namespace GeographicLib {
@@ -351,14 +348,14 @@ namespace GeographicLib {
   // tan(phi), taup = sinh(psi)
 
   void TransverseMercator::Forward(real lon0, real lat, real lon,
-                                   real& x, real& y, real& gamma, real& k)
-    const {
+                                   real& x, real& y,
+                                   real& gamma, real& k) const {
     lat = Math::LatFix(lat);
     lon = Math::AngDiff(lon0, lon);
     // Explicitly enforce the parity
     int
-      latsign = lat < 0 ? -1 : 1,
-      lonsign = lon < 0 ? -1 : 1;
+      latsign = (lat < 0) ? -1 : 1,
+      lonsign = (lon < 0) ? -1 : 1;
     lon *= lonsign;
     lat *= latsign;
     bool backside = lon > 90;
@@ -436,73 +433,77 @@ namespace GeographicLib {
     // which is used in Reverse.
     //
     // Evaluate sums via Clenshaw method.  See
-    //    http://mathworld.wolfram.com/ClenshawRecurrenceFormula.html
+    //    https://en.wikipedia.org/wiki/Clenshaw_algorithm
     //
     // Let
     //
-    //    S = sum(c[k] * F[k](x), k = 0..N)
-    //    F[n+1](x) = alpha(n,x) * F[n](x) + beta(n,x) * F[n-1](x)
+    //    S = sum(a[k] * phi[k](x), k = 0..n)
+    //    phi[k+1](x) = alpha[k](x) * phi[k](x) + beta[k](x) * phi[k-1](x)
     //
     // Evaluate S with
     //
-    //    y[N+2] = y[N+1] = 0
-    //    y[k] = alpha(k,x) * y[k+1] + beta(k+1,x) * y[k+2] + c[k]
-    //    S = c[0] * F[0](x) + y[1] * F[1](x) + beta(1,x) * F[0](x) * y[2]
+    //    b[n+2] = b[n+1] = 0
+    //    b[k] = alpha[k](x) * b[k+1] + beta[k+1](x) * b[k+2] + a[k]
+    //    S = (a[0] + beta[1](x) * b[2]) * phi[0](x) + b[1] * phi[1](x)
     //
     // Here we have
     //
     //    x = 2 * zeta'
-    //    F[n](x) = sin(n * x)
-    //    a(n, x) = 2 * cos(x)
-    //    b(n, x) = -1
-    //    [ sin(A+B) - 2*cos(B)*sin(A) + sin(A-B) = 0, A = n*x, B = x ]
-    //    N = maxpow_
-    //    c[k] = _alp[k]
-    //    S = y[1] * sin(x)
+    //    phi[k](x) = sin(k * x)
+    //    alpha[k](x) = 2 * cos(x)
+    //    beta[k](x) = -1
+    //    [ sin(A+B) - 2*cos(B)*sin(A) + sin(A-B) = 0, A = k*x, B = x ]
+    //    n = maxpow_
+    //    a[k] = _alp[k]
+    //    S = b[1] * sin(x)
     //
     // For the derivative we have
     //
     //    x = 2 * zeta'
-    //    F[n](x) = cos(n * x)
-    //    a(n, x) = 2 * cos(x)
-    //    b(n, x) = -1
-    //    [ cos(A+B) - 2*cos(B)*cos(A) + cos(A-B) = 0, A = n*x, B = x ]
-    //    c[0] = 1; c[k] = 2*k*_alp[k]
-    //    S = (c[0] - y[2]) + y[1] * cos(x)
+    //    phi[k](x) = cos(k * x)
+    //    alpha[k](x) = 2 * cos(x)
+    //    beta[k](x) = -1
+    //    [ cos(A+B) - 2*cos(B)*cos(A) + cos(A-B) = 0, A = k*x, B = x ]
+    //    a[0] = 1; a[k] = 2*k*_alp[k]
+    //    S = (a[0] - b[2]) + b[1] * cos(x)
+    //
+    // Matrix formulation (not used here):
+    //    phi[k](x) = [sin(k * x); k * cos(k * x)]
+    //    alpha[k](x) = 2 * [cos(x), 0; -sin(x), cos(x)]
+    //    beta[k](x) = -1 * [1, 0; 0, 1]
+    //    a[k] = _alp[k] * [1, 0; 0, 1]
+    //    b[n+2] = b[n+1] = [0, 0; 0, 0]
+    //    b[k] = alpha[k](x) * b[k+1] + beta[k+1](x) * b[k+2] + a[k]
+    //    N.B., for all k: b[k](1,2) = 0; b[k](1,1) = b[k](2,2)
+    //    S = (a[0] + beta[1](x) * b[2]) * phi[0](x) + b[1] * phi[1](x)
+    //    phi[0](x) = [0; 0]
+    //    phi[1](x) = [sin(x); cos(x)]
     real
       c0 = cos(2 * xip), ch0 = cosh(2 * etap),
-      s0 = sin(2 * xip), sh0 = sinh(2 * etap),
-      ar = 2 * c0 * ch0, ai = -2 * s0 * sh0; // 2 * cos(2*zeta')
+      s0 = sin(2 * xip), sh0 = sinh(2 * etap);
+    complex<real> a(2 * c0 * ch0, -2 * s0 * sh0); // 2 * cos(2*zeta')
     int n = maxpow_;
-    real
-      xi0 = (n & 1 ? _alp[n] : 0), eta0 = 0,
-      xi1 = 0, eta1 = 0;
-    real                        // Accumulators for dzeta/dzeta'
-      yr0 = (n & 1 ? 2 * maxpow_ * _alp[n--] : 0), yi0 = 0,
-      yr1 = 0, yi1 = 0;
+    complex<real>
+      y0(n & 1 ?       _alp[n] : 0), y1, // default initializer is 0+i0
+      z0(n & 1 ? 2*n * _alp[n] : 0), z1;
+    if (n & 1) --n;
     while (n) {
-      xi1  = ar * xi0 - ai * eta0 - xi1 + _alp[n];
-      eta1 = ai * xi0 + ar * eta0 - eta1;
-      yr1 = ar * yr0 - ai * yi0 - yr1 + 2 * n * _alp[n];
-      yi1 = ai * yr0 + ar * yi0 - yi1;
+      y1 = a * y0 - y1 +       _alp[n];
+      z1 = a * z0 - z1 + 2*n * _alp[n];
       --n;
-      xi0  = ar * xi1 - ai * eta1 - xi0 + _alp[n];
-      eta0 = ai * xi1 + ar * eta1 - eta0;
-      yr0 = ar * yr1 - ai * yi1 - yr0 + 2 * n * _alp[n];
-      yi0 = ai * yr1 + ar * yi1 - yi0;
+      y0 = a * y1 - y0 +       _alp[n];
+      z0 = a * z1 - z0 + 2*n * _alp[n];
       --n;
     }
-    ar /= 2; ai /= 2;           // cos(2*zeta')
-    yr1 = 1 - yr1 + ar * yr0 - ai * yi0;
-    yi1 =   - yi1 + ai * yr0 + ar * yi0;
-    ar = s0 * ch0; ai = c0 * sh0; // sin(2*zeta')
-    real
-      xi  = xip  + ar * xi0 - ai * eta0,
-      eta = etap + ai * xi0 + ar * eta0;
+    a /= real(2);               // cos(2*zeta')
+    z1 = real(1) - z1 + a * z0;
+    a = complex<real>(s0 * ch0, c0 * sh0); // sin(2*zeta')
+    y1 = complex<real>(xip, etap) + a * y0;
     // Fold in change in convergence and scale for Gauss-Schreiber TM to
     // Gauss-Krueger TM.
-    gamma -= Math::atan2d(yi1, yr1);
-    k *= _b1 * Math::hypot(yr1, yi1);
+    gamma -= Math::atan2d(z1.imag(), z1.real());
+    k *= _b1 * abs(z1);
+    real xi = y1.real(), eta = y1.imag();
     y = _a1 * _k0 * (backside ? Math::pi() - xi : xi) * latsign;
     x = _a1 * _k0 * eta * lonsign;
     if (backside)
@@ -513,8 +514,8 @@ namespace GeographicLib {
   }
 
   void TransverseMercator::Reverse(real lon0, real x, real y,
-                                   real& lat, real& lon, real& gamma, real& k)
-    const {
+                                   real& lat, real& lon,
+                                   real& gamma, real& k) const {
     // This undoes the steps in Forward.  The wrinkles are: (1) Use of the
     // reverted series to express zeta' in terms of zeta. (2) Newton's method
     // to solve for phi in terms of tan(phi).
@@ -523,8 +524,8 @@ namespace GeographicLib {
       eta = x / (_a1 * _k0);
     // Explicitly enforce the parity
     int
-      xisign = xi < 0 ? -1 : 1,
-      etasign = eta < 0 ? -1 : 1;
+      xisign = (xi < 0) ? -1 : 1,
+      etasign = (eta < 0) ? -1 : 1;
     xi *= xisign;
     eta *= etasign;
     bool backside = xi > Math::pi()/2;
@@ -532,43 +533,35 @@ namespace GeographicLib {
       xi = Math::pi() - xi;
     real
       c0 = cos(2 * xi), ch0 = cosh(2 * eta),
-      s0 = sin(2 * xi), sh0 = sinh(2 * eta),
-      ar = 2 * c0 * ch0, ai = -2 * s0 * sh0; // 2 * cos(2*zeta)
+      s0 = sin(2 * xi), sh0 = sinh(2 * eta);
+    complex<real> a(2 * c0 * ch0, -2 * s0 * sh0); // 2 * cos(2*zeta)
     int n = maxpow_;
-    real                        // Accumulators for zeta'
-      xip0 = (n & 1 ? -_bet[n] : 0), etap0 = 0,
-      xip1 = 0, etap1 = 0;
-    real                        // Accumulators for dzeta'/dzeta
-      yr0 = (n & 1 ? - 2 * maxpow_ * _bet[n--] : 0), yi0 = 0,
-      yr1 = 0, yi1 = 0;
+    complex<real>
+      y0(n & 1 ?       -_bet[n] : 0), y1, // default initializer is 0+i0
+      z0(n & 1 ? -2*n * _bet[n] : 0), z1;
+    if (n & 1) --n;
     while (n) {
-      xip1  = ar * xip0 - ai * etap0 - xip1 - _bet[n];
-      etap1 = ai * xip0 + ar * etap0 - etap1;
-      yr1 = ar * yr0 - ai * yi0 - yr1 - 2 * n * _bet[n];
-      yi1 = ai * yr0 + ar * yi0 - yi1;
+      y1 = a * y0 - y1 -       _bet[n];
+      z1 = a * z0 - z1 - 2*n * _bet[n];
       --n;
-      xip0  = ar * xip1 - ai * etap1 - xip0 - _bet[n];
-      etap0 = ai * xip1 + ar * etap1 - etap0;
-      yr0 = ar * yr1 - ai * yi1 - yr0 - 2 * n * _bet[n];
-      yi0 = ai * yr1 + ar * yi1 - yi0;
+      y0 = a * y1 - y0 -       _bet[n];
+      z0 = a * z1 - z0 - 2*n * _bet[n];
       --n;
     }
-    ar /= 2; ai /= 2;           // cos(2*zeta')
-    yr1 = 1 - yr1 + ar * yr0 - ai * yi0;
-    yi1 =   - yi1 + ai * yr0 + ar * yi0;
-    ar = s0 * ch0; ai = c0 * sh0; // sin(2*zeta)
-    real
-      xip  = xi  + ar * xip0 - ai * etap0,
-      etap = eta + ai * xip0 + ar * etap0;
+    a /= real(2);               // cos(2*zeta)
+    z1 = real(1) - z1 + a * z0;
+    a = complex<real>(s0 * ch0, c0 * sh0); // sin(2*zeta)
+    y1 = complex<real>(xi, eta) + a * y0;
     // Convergence and scale for Gauss-Schreiber TM to Gauss-Krueger TM.
-    gamma = Math::atan2d(yi1, yr1);
-    k = _b1 / Math::hypot(yr1, yi1);
+    gamma = Math::atan2d(z1.imag(), z1.real());
+    k = _b1 / abs(z1);
     // JHS 154 has
     //
     //   phi' = asin(sin(xi') / cosh(eta')) (Krueger p 17 (25))
     //   lam = asin(tanh(eta') / cos(phi')
     //   psi = asinh(tan(phi'))
     real
+      xip = y1.real(), etap = y1.imag(),
       s = sinh(etap),
       c = max(real(0), cos(xip)), // cos(pi/2) might be negative
       r = Math::hypot(s, c);
diff --git a/src/TransverseMercatorExact.cpp b/src/TransverseMercatorExact.cpp
index 95decc1..b000553 100644
--- a/src/TransverseMercatorExact.cpp
+++ b/src/TransverseMercatorExact.cpp
@@ -2,7 +2,7 @@
  * \file TransverseMercatorExact.cpp
  * \brief Implementation for GeographicLib::TransverseMercatorExact class
  *
- * Copyright (c) Charles Karney (2008-2016) <charles at karney.com> and licensed
+ * Copyright (c) Charles Karney (2008-2017) <charles at karney.com> and licensed
  * under the MIT/X11 License.  For more information, see
  * https://geographiclib.sourceforge.io/
  *
@@ -95,8 +95,8 @@ namespace GeographicLib {
     real
       d1 = sqrt(Math::sq(cnu) + _mv * Math::sq(snu * snv)),
       d2 = sqrt(_mu * Math::sq(cnu) + _mv * Math::sq(cnv)),
-      t1 = (d1 ? snu * dnv / d1 : (snu < 0 ? -overflow : overflow)),
-      t2 = (d2 ? sinh( _e * Math::asinh(_e * snu / d2) ) :
+      t1 = (d1 != 0 ? snu * dnv / d1 : (snu < 0 ? -overflow : overflow)),
+      t2 = (d2 != 0 ? sinh( _e * Math::asinh(_e * snu / d2) ) :
             (snu < 0 ? -overflow : overflow));
     // psi = asinh(t1) - asinh(t2)
     // taup = sinh(psi)
@@ -119,8 +119,8 @@ namespace GeographicLib {
   }
 
   // Starting point for zetainv
-  bool TransverseMercatorExact::zetainv0(real psi, real lam, real& u, real& v)
-    const {
+  bool TransverseMercatorExact::zetainv0(real psi, real lam,
+                                         real& u, real& v) const {
     bool retval = false;
     if (psi < -_e * Math::pi()/4 &&
         lam > (1 - 2 * _e) * Math::pi()/2 &&
@@ -184,8 +184,8 @@ namespace GeographicLib {
   }
 
   // Invert zeta using Newton's method
-  void TransverseMercatorExact::zetainv(real taup, real lam, real& u, real& v)
-    const  {
+  void TransverseMercatorExact::zetainv(real taup, real lam,
+                                        real& u, real& v) const  {
     real
       psi = Math::asinh(taup),
       scal = 1/Math::hypot(real(1), taup);
@@ -242,8 +242,8 @@ namespace GeographicLib {
   }
 
   // Starting point for sigmainv
-  bool TransverseMercatorExact::sigmainv0(real xi, real eta, real& u, real& v)
-    const {
+  bool TransverseMercatorExact::sigmainv0(real xi, real eta,
+                                          real& u, real& v) const {
     bool retval = false;
     if (eta > real(1.25) * _Ev.KE() ||
         (xi < -real(0.25) * _Eu.E() && xi < eta - _Ev.KE())) {
@@ -292,8 +292,8 @@ namespace GeographicLib {
   }
 
   // Invert sigma using Newton's method
-  void TransverseMercatorExact::sigmainv(real xi, real eta, real& u, real& v)
-    const {
+  void TransverseMercatorExact::sigmainv(real xi, real eta,
+                                         real& u, real& v) const {
     if (sigmainv0(xi, eta, u, v))
       return;
     // min iterations = 2, max iterations = 7; mean = 3.9
@@ -346,8 +346,8 @@ namespace GeographicLib {
   }
 
   void TransverseMercatorExact::Forward(real lon0, real lat, real lon,
-                                        real& x, real& y, real& gamma, real& k)
-    const {
+                                        real& x, real& y,
+                                        real& gamma, real& k) const {
     lat = Math::LatFix(lat);
     lon = Math::AngDiff(lon0, lon);
     // Explicitly enforce the parity
@@ -407,8 +407,7 @@ namespace GeographicLib {
 
   void TransverseMercatorExact::Reverse(real lon0, real x, real y,
                                         real& lat, real& lon,
-                                        real& gamma, real& k)
-    const {
+                                        real& gamma, real& k) const {
     // This undoes the steps in Forward.
     real
       xi = y / (_a * _k0),
diff --git a/src/UTMUPS.cpp b/src/UTMUPS.cpp
index d02d62d..89aed7e 100644
--- a/src/UTMUPS.cpp
+++ b/src/UTMUPS.cpp
@@ -2,7 +2,7 @@
  * \file UTMUPS.cpp
  * \brief Implementation for GeographicLib::UTMUPS class
  *
- * Copyright (c) Charles Karney (2008-2016) <charles at karney.com> and licensed
+ * Copyright (c) Charles Karney (2008-2017) <charles at karney.com> and licensed
  * under the MIT/X11 License.  For more information, see
  * https://geographiclib.sourceforge.io/
  **********************************************************************/
@@ -17,26 +17,27 @@ namespace GeographicLib {
 
   using namespace std;
 
-  const int UTMUPS::falseeasting_[4] =
+  const int UTMUPS::falseeasting_[] =
     { MGRS::upseasting_ * MGRS::tile_, MGRS::upseasting_ * MGRS::tile_,
       MGRS::utmeasting_ * MGRS::tile_, MGRS::utmeasting_ * MGRS::tile_ };
-  const int UTMUPS::falsenorthing_[4] =
+  const int UTMUPS::falsenorthing_[] =
     { MGRS::upseasting_ * MGRS::tile_, MGRS::upseasting_ * MGRS::tile_,
       MGRS::maxutmSrow_ * MGRS::tile_, MGRS::minutmNrow_ * MGRS::tile_ };
-  const int UTMUPS::mineasting_[4] =
+  const int UTMUPS::mineasting_[] =
     { MGRS::minupsSind_ * MGRS::tile_, MGRS::minupsNind_ * MGRS::tile_,
       MGRS::minutmcol_ * MGRS::tile_, MGRS::minutmcol_ * MGRS::tile_ };
-  const int UTMUPS::maxeasting_[4] =
+  const int UTMUPS::maxeasting_[] =
     { MGRS::maxupsSind_ * MGRS::tile_, MGRS::maxupsNind_ * MGRS::tile_,
       MGRS::maxutmcol_ * MGRS::tile_, MGRS::maxutmcol_ * MGRS::tile_ };
-  const int UTMUPS::minnorthing_[4] =
+  const int UTMUPS::minnorthing_[] =
     { MGRS::minupsSind_ * MGRS::tile_, MGRS::minupsNind_ * MGRS::tile_,
       MGRS::minutmSrow_ * MGRS::tile_,
       (MGRS::minutmNrow_ + MGRS::minutmSrow_ - MGRS::maxutmSrow_)
       * MGRS::tile_ };
-  const int UTMUPS::maxnorthing_[4] =
+  const int UTMUPS::maxnorthing_[] =
     { MGRS::maxupsSind_ * MGRS::tile_, MGRS::maxupsNind_ * MGRS::tile_,
-      (MGRS::maxutmSrow_ + MGRS::maxutmNrow_ - MGRS::minutmNrow_) * MGRS::tile_,
+      (MGRS::maxutmSrow_ + MGRS::maxutmNrow_ - MGRS::minutmNrow_) *
+      MGRS::tile_,
       MGRS::maxutmNrow_ * MGRS::tile_ };
 
   int UTMUPS::StandardZone(real lat, real lon, int setzone) {
@@ -54,9 +55,9 @@ namespace GeographicLib {
         ilon += 360;
       int zone = (ilon + 186)/6;
       int band = MGRS::LatitudeBand(lat);
-      if (band == 7 && zone == 31 && ilon >= 3)
+      if (band == 7 && zone == 31 && ilon >= 3) // The Norway exception
         zone = 32;
-      else if (band == 9 && ilon >= 0 && ilon < 42)
+      else if (band == 9 && ilon >= 0 && ilon < 42) // The Svalbard exception
         zone = 2 * ((ilon + 183)/12) + 1;
       return zone;
     } else
@@ -107,7 +108,8 @@ namespace GeographicLib {
       throw GeographicErr("Latitude " + Utility::str(lat)
                           + ", longitude " + Utility::str(lon)
                           + " out of legal range for "
-                          + (utmp ? "UTM zone " + Utility::str(zone1) : "UPS"));
+                          + (utmp ? "UTM zone " + Utility::str(zone1) :
+                             "UPS"));
     zone = zone1;
     northp = northp1;
     x = x1;
@@ -203,7 +205,8 @@ namespace GeographicLib {
     return;
   }
 
-  void UTMUPS::DecodeZone(const std::string& zonestr, int& zone, bool& northp) {
+  void UTMUPS::DecodeZone(const std::string& zonestr, int& zone, bool& northp)
+  {
     unsigned zlen = unsigned(zonestr.size());
     if (zlen == 0)
       throw GeographicErr("Empty zone specification");
diff --git a/tools/GeoidEval.cpp b/tools/GeoidEval.cpp
index 7050cfd..725be89 100644
--- a/tools/GeoidEval.cpp
+++ b/tools/GeoidEval.cpp
@@ -118,9 +118,10 @@ int main(int argc, const char* const argv[]) {
       } else {
         int retval = usage(!(arg == "-h" || arg == "--help"), arg != "--help");
         if (arg == "-h")
-          std::cout<< "\nDefault geoid path = \""   << Geoid::DefaultGeoidPath()
-                   << "\"\nDefault geoid name = \"" << Geoid::DefaultGeoidName()
-                   << "\"\n";
+          std::cout
+            << "\nDefault geoid path = \""   << Geoid::DefaultGeoidPath()
+            << "\"\nDefault geoid name = \"" << Geoid::DefaultGeoidName()
+            << "\"\n";
         return retval;
       }
     }
@@ -184,10 +185,11 @@ int main(int argc, const char* const argv[]) {
                   << "Max error (m): " << g.MaxError()      << "\n"
                   << "RMS error (m): " << g.RMSError()      << "\n";
         if (g.Cache())
-          std::cerr<< "Caching:"
-                   << "\n SW Corner: " << g.CacheSouth() << " " << g.CacheWest()
-                   << "\n NE Corner: " << g.CacheNorth() << " " << g.CacheEast()
-                   << "\n";
+          std::cerr
+            << "Caching:"
+            << "\n SW Corner: " << g.CacheSouth() << " " << g.CacheWest()
+            << "\n NE Corner: " << g.CacheNorth() << " " << g.CacheEast()
+            << "\n";
       }
 
       GeoCoords p;
diff --git a/tools/Gravity.cpp b/tools/Gravity.cpp
index 86311c3..99a0993 100644
--- a/tools/Gravity.cpp
+++ b/tools/Gravity.cpp
@@ -254,9 +254,9 @@ int main(int argc, const char* const argv[]) {
                 g.Disturbance(lat, lon, h, deltax, deltay, deltaz);
               }
               // Convert to mGals
-              *output << Utility::str(deltax * 1e5, prec) << " "
-                      << Utility::str(deltay * 1e5, prec) << " "
-                      << Utility::str(deltaz * 1e5, prec)
+              *output << Utility::str(deltax * 100000, prec) << " "
+                      << Utility::str(deltay * 100000, prec) << " "
+                      << Utility::str(deltaz * 100000, prec)
                       << eol;
             }
             break;
@@ -267,7 +267,7 @@ int main(int argc, const char* const argv[]) {
                 c.SphericalAnomaly(lon, Dg01, xi, eta);
               else
                 g.SphericalAnomaly(lat, lon, h, Dg01, xi, eta);
-              Dg01 *= 1e5;      // Convert to mGals
+              Dg01 *= 100000;      // Convert to mGals
               xi *= 3600;       // Convert to arcsecs
               eta *= 3600;
               *output << Utility::str(Dg01, prec) << " "
diff --git a/tools/Makefile.mk b/tools/Makefile.mk
index b93cb7d..53714ef 100644
--- a/tools/Makefile.mk
+++ b/tools/Makefile.mk
@@ -55,8 +55,8 @@ Planimeter: Planimeter.o
 RhumbSolve: RhumbSolve.o
 TransverseMercatorProj: TransverseMercatorProj.o
 
-CartConvert.o: CartConvert.usage Config.h Constants.hpp DMS.hpp Geocentric.hpp \
-	LocalCartesian.hpp Math.hpp Utility.hpp
+CartConvert.o: CartConvert.usage Config.h Constants.hpp DMS.hpp \
+	Geocentric.hpp LocalCartesian.hpp Math.hpp Utility.hpp
 ConicProj.o: ConicProj.usage Config.h AlbersEqualArea.hpp Constants.hpp \
 	DMS.hpp LambertConformalConic.hpp Math.hpp Utility.hpp
 GeoConvert.o: GeoConvert.usage Config.h Constants.hpp DMS.hpp GeoCoords.hpp \
@@ -65,17 +65,18 @@ GeodSolve.o: GeodSolve.usage Config.h Constants.hpp DMS.hpp Geodesic.hpp \
 	GeodesicExact.hpp GeodesicLine.hpp GeodesicLineExact.hpp Math.hpp \
 	Utility.hpp
 GeodesicProj.o: GeodesicProj.usage Config.h AzimuthalEquidistant.hpp \
-	CassiniSoldner.hpp Constants.hpp DMS.hpp Geodesic.hpp GeodesicLine.hpp \
-	Gnomonic.hpp Math.hpp Utility.hpp
+	CassiniSoldner.hpp Constants.hpp DMS.hpp Geodesic.hpp \
+	GeodesicLine.hpp Gnomonic.hpp Math.hpp Utility.hpp
 GeoidEval.o: GeoidEval.usage Config.h Constants.hpp DMS.hpp GeoCoords.hpp \
 	Geoid.hpp Math.hpp UTMUPS.hpp Utility.hpp
 Gravity.o: Gravity.usage Config.h CircularEngine.hpp Constants.hpp DMS.hpp \
 	Geocentric.hpp GravityCircle.hpp GravityModel.hpp Math.hpp \
 	NormalGravity.hpp SphericalEngine.hpp SphericalHarmonic.hpp \
 	SphericalHarmonic1.hpp Utility.hpp
-MagneticField.o: MagneticField.usage Config.h CircularEngine.hpp Constants.hpp \
-	DMS.hpp Geocentric.hpp MagneticCircle.hpp MagneticModel.hpp Math.hpp \
-	SphericalEngine.hpp SphericalHarmonic.hpp Utility.hpp
+MagneticField.o: MagneticField.usage Config.h CircularEngine.hpp \
+	Constants.hpp DMS.hpp Geocentric.hpp MagneticCircle.hpp \
+	MagneticModel.hpp Math.hpp SphericalEngine.hpp SphericalHarmonic.hpp \
+	Utility.hpp
 Planimeter.o: Planimeter.usage Config.h Accumulator.hpp Constants.hpp DMS.hpp \
 	Ellipsoid.hpp GeoCoords.hpp Geodesic.hpp Math.hpp PolygonArea.hpp \
 	UTMUPS.hpp Utility.hpp
diff --git a/tools/geographiclib-get-magnetic.sh b/tools/geographiclib-get-magnetic.sh
index dcd9a21..c0ca08b 100644
--- a/tools/geographiclib-get-magnetic.sh
+++ b/tools/geographiclib-get-magnetic.sh
@@ -28,8 +28,9 @@ table:
   wmm2015    12    2015-2020      2       3
   igrf11     13    1900-2015      7      25
   igrf12     13    1900-2020      7      26
-  emm2010   740    2010-2015    3700    4400
-  emm2015   730    2000-2020     660    4300
+  emm2010   739    2010-2015    3700    4400
+  emm2015   729    2000-2020     660    4300
+  emm2017   790    2000-2022    1740    5050
 
 The size columns give the download and installed sizes of the datasets.
 In addition you can specify
@@ -118,6 +119,7 @@ wmm2010
 wmm2015
 emm2010
 emm2015
+emm2017
 igrf11
 igrf12
 EOF
diff --git a/tools/tests.cmake b/tools/tests.cmake
index 134a65d..1206cf6 100644
--- a/tools/tests.cmake
+++ b/tools/tests.cmake
@@ -142,26 +142,29 @@ add_test (NAME GeodSolve9 COMMAND GeodSolve -i --input-string
 set_tests_properties (GeodSolve9 PROPERTIES PASS_REGULAR_EXPRESSION
   ".* .* 19993558.287")
 
-# Check fix for adjust tol1_ bug found 2011-06-25 (Visual Studio 10 rel + debug)
+# Check fix for adjust tol1_ bug found 2011-06-25 (Visual Studio 10 rel
+# + debug)
 add_test (NAME GeodSolve10 COMMAND GeodSolve -i --input-string
   "52.784459512564 0 -52.784459512563990912 179.634407464943777557")
 set_tests_properties (GeodSolve10 PROPERTIES PASS_REGULAR_EXPRESSION
   ".* .* 19991596.095")
 
-# Check fix for bet2 = -bet1 bug found 2011-06-25 (Visual Studio 10 rel + debug)
+# Check fix for bet2 = -bet1 bug found 2011-06-25 (Visual Studio 10 rel
+# + debug)
 add_test (NAME GeodSolve11 COMMAND GeodSolve -i --input-string
   "48.522876735459 0 -48.52287673545898293 179.599720456223079643")
 set_tests_properties (GeodSolve11 PROPERTIES PASS_REGULAR_EXPRESSION
   ".* .* 19989144.774")
 
 # Check fix for inverse geodesics on extreme prolate/oblate ellipsoids
-# Reported 2012-08-29 Stefan Guenther <stefan.gunther at embl.de>; fixed 2012-10-07
+# Reported 2012-08-29 Stefan Guenther <stefan.gunther at embl.de>; fixed
+# 2012-10-07
 add_test (NAME GeodSolve12 COMMAND GeodSolve
   -i -e 89.8 -1.83 -p 1 --input-string "0 0 -10 160")
 add_test (NAME GeodSolve13 COMMAND GeodSolve
   -i -e 89.8 -1.83 -p 1 --input-string "0 0 -10 160" -E)
-set_tests_properties (GeodSolve12 GeodSolve13 PROPERTIES PASS_REGULAR_EXPRESSION
-  "120\\.27.* 105\\.15.* 266\\.7")
+set_tests_properties (GeodSolve12 GeodSolve13
+  PROPERTIES PASS_REGULAR_EXPRESSION "120\\.27.* 105\\.15.* 266\\.7")
 
 if (NOT (GEOGRAPHICLIB_PRECISION EQUAL 4 AND Boost_VERSION LESS 106000))
   # mpfr (nan == 0 is true) and boost-quadmath (nan > 0 is true) have
@@ -182,7 +185,8 @@ add_test (NAME GeodSolve15 COMMAND GeodSolve
   -e 6.4e6 -1/150 -f --input-string "1 2 3 4")
 add_test (NAME GeodSolve16 COMMAND GeodSolve
   -e 6.4e6 -1/150 -f --input-string "1 2 3 4" -E)
-set_tests_properties (GeodSolve15 GeodSolve16 PROPERTIES PASS_REGULAR_EXPRESSION
+set_tests_properties (GeodSolve15 GeodSolve16
+  PROPERTIES PASS_REGULAR_EXPRESSION
   "1\\..* 2\\..* 3\\..* 1\\..* 2\\..* 3\\..* 4\\..* 0\\..* 4\\..* 1\\..* 1\\..* 23700")
 
 # Check fix for LONG_UNROLL bug found on 2015-05-07
@@ -195,7 +199,8 @@ add_test (NAME GeodSolve19 COMMAND GeodSolve
 add_test (NAME GeodSolve20 COMMAND GeodSolve
   -u -L 40 -75 -10 --input-string "2e7" -E)
 set_tests_properties (GeodSolve17 GeodSolve18 GeodSolve19 GeodSolve20
-  PROPERTIES PASS_REGULAR_EXPRESSION "-39\\.[0-9]* -254\\.[0-9]* -170\\.[0-9]*")
+  PROPERTIES PASS_REGULAR_EXPRESSION
+  "-39\\.[0-9]* -254\\.[0-9]* -170\\.[0-9]*")
 add_test (NAME GeodSolve21 COMMAND GeodSolve
   --input-string "40 -75 -10 2e7")
 add_test (NAME GeodSolve22 COMMAND GeodSolve
@@ -234,13 +239,15 @@ add_test (NAME GeodSolve29 COMMAND GeodSolve
   -i -f -p 0 --input-string "0 539 0 181")
 add_test (NAME GeodSolve30 COMMAND GeodSolve
   -i -f -p 0 --input-string "0 539 0 181" -E)
-set_tests_properties (GeodSolve29 GeodSolve30 PROPERTIES PASS_REGULAR_EXPRESSION
+set_tests_properties (GeodSolve29 GeodSolve30
+  PROPERTIES PASS_REGULAR_EXPRESSION
   "0\\..* 179\\..* 90\\..* 0\\..* -179\\..* 90\\..* 222639 ")
 add_test (NAME GeodSolve31 COMMAND GeodSolve
   -i -f -p 0 --input-string "0 539 0 181" -u)
 add_test (NAME GeodSolve32 COMMAND GeodSolve
   -i -f -p 0 --input-string "0 539 0 181" -u -E)
-set_tests_properties (GeodSolve31 GeodSolve32 PROPERTIES PASS_REGULAR_EXPRESSION
+set_tests_properties (GeodSolve31 GeodSolve32
+  PROPERTIES PASS_REGULAR_EXPRESSION
   "0\\..* 539\\..* 90\\..* 0\\..* 541\\..* 90\\..* 222639 ")
 
 # Check max(-0.0,+0.0) issues 2015-08-22 (triggered by bugs in Octave --
@@ -405,6 +412,24 @@ set_tests_properties (GeodSolve75
   # Exact area is 286698586.30197, but -E calculation is less accurate
   "54.* 15.* 55\\.72311035.* 54.* 15.* 55\\.72351567.* 39\\.52768638.* 0\\.00035549.* 39\\.52768638.* 0\\.99999999.* 0\\.99999999.* 286698586\\.(29[89]|30[0-5])")
 
+# The distance from Wellington and Salamanca (a classic failure of Vincenty)
+add_test (NAME GeodSolve76 COMMAND GeodSolve
+  -i -p 6 --input-string "41:19S 174:49E 40:58N 5:30W")
+add_test (NAME GeodSolve77 COMMAND GeodSolve
+  -i -p 6 --input-string "41:19S 174:49E 40:58N 5:30W" -E)
+set_tests_properties (GeodSolve76 GeodSolve77
+  PROPERTIES PASS_REGULAR_EXPRESSION
+  "160\\.39137649664 19\\.50042925176 19960543\\.857179")
+
+# An example where the NGS calculator fails to converge
+add_test (NAME GeodSolve78 COMMAND GeodSolve
+  -i -p 6 --input-string "27.2 0 -27.1 179.5")
+add_test (NAME GeodSolve79 COMMAND GeodSolve
+  -i -p 6 --input-string "27.2 0 -27.1 179.5" -E)
+set_tests_properties (GeodSolve78 GeodSolve79
+  PROPERTIES PASS_REGULAR_EXPRESSION
+  "45\\.82468716758 134\\.22776532670 19974354\\.765767")
+
 # Check fix for pole-encircling bug found 2011-03-16
 add_test (NAME Planimeter0 COMMAND Planimeter
   --input-string "89 0;89 90;89 180;89 270")
@@ -415,7 +440,8 @@ add_test (NAME Planimeter2 COMMAND Planimeter
 add_test (NAME Planimeter3 COMMAND Planimeter --input-string "90 0; 0 0; 0 90")
 add_test (NAME Planimeter4 COMMAND Planimeter
   -l --input-string "90 0; 0 0; 0 90")
-set_tests_properties (Planimeter0 Planimeter1 PROPERTIES PASS_REGULAR_EXPRESSION
+set_tests_properties (Planimeter0 Planimeter1
+  PROPERTIES PASS_REGULAR_EXPRESSION
   "4 631819\\.8745[0-9]+ 2495230567[78]\\.[0-9]+")
 set_tests_properties (Planimeter2 PROPERTIES PASS_REGULAR_EXPRESSION
   "4 627598\\.2731[0-9]+ 24619419146.[0-9]+")
@@ -489,14 +515,16 @@ add_test (NAME ConicProj5 COMMAND ConicProj
   -r -c 45 45 --input-string "0 -1e100")
 set_tests_properties (ConicProj5 PROPERTIES PASS_REGULAR_EXPRESSION
   "^-90\\.0+ -?0\\.00[0-9]+ ")
-add_test (NAME ConicProj6 COMMAND ConicProj -r -c 45 45 --input-string "0 -inf")
+add_test (NAME ConicProj6 COMMAND ConicProj
+  -r -c 45 45 --input-string "0 -inf")
 set_tests_properties (ConicProj6 PROPERTIES PASS_REGULAR_EXPRESSION
   "^-90\\.0+ -?0\\.00[0-9]+ ")
 add_test (NAME ConicProj7 COMMAND ConicProj
   -r -c 90 90 --input-string "0 -1e150")
 set_tests_properties (ConicProj7 PROPERTIES PASS_REGULAR_EXPRESSION
   "^-90\\.0+ -?0\\.00[0-9]+ ")
-add_test (NAME ConicProj8 COMMAND ConicProj -r -c 90 90 --input-string "0 -inf")
+add_test (NAME ConicProj8 COMMAND ConicProj
+  -r -c 90 90 --input-string "0 -inf")
 set_tests_properties (ConicProj8 PROPERTIES PASS_REGULAR_EXPRESSION
   "^-90\\.0+ -?0\\.00[0-9]+ ")
 
@@ -513,23 +541,45 @@ set_tests_properties (CartConvert1 PROPERTIES PASS_REGULAR_EXPRESSION
 # TransverseMercatorExact found 2013-06-26
 add_test (NAME TransverseMercatorProj0 COMMAND TransverseMercatorProj
   -k 1 --input-string "90 75")
-set_tests_properties (TransverseMercatorProj0 PROPERTIES PASS_REGULAR_EXPRESSION
+add_test (NAME TransverseMercatorProj1 COMMAND TransverseMercatorProj
+  -k 1 --input-string "90 75" -s)
+set_tests_properties (TransverseMercatorProj0 TransverseMercatorProj1
+  PROPERTIES PASS_REGULAR_EXPRESSION
   "^0\\.0+ 10001965\\.7293[0-9]+ 75\\.0+ 1\\.0+")
 # Test fix to bad scale at pole with TransverseMercatorExact
 # found 2013-06-30 (quarter meridian = 10001965.7293127228128889202m)
-add_test (NAME TransverseMercatorProj1 COMMAND TransverseMercatorProj
+add_test (NAME TransverseMercatorProj2 COMMAND TransverseMercatorProj
   -k 1 -r --input-string "0 10001965.7293127228")
-set_tests_properties (TransverseMercatorProj1 PROPERTIES PASS_REGULAR_EXPRESSION
+add_test (NAME TransverseMercatorProj3 COMMAND TransverseMercatorProj
+  -k 1 -r --input-string "0 10001965.7293127228" -s)
+set_tests_properties (TransverseMercatorProj2 TransverseMercatorProj3
+  PROPERTIES PASS_REGULAR_EXPRESSION
   "(90\\.0+ 0\\.0+ 0\\.0+|(90\\.0+|89\\.99999999999[0-9]+) -?180\\.0+ -?180\\.0+) (1\\.0000+|0\\.9999+)")
+# Generic tests for transverse Mercator added 2017-04-15 to check use of
+# complex arithmetic to do Clenshaw sum.
+add_test (NAME TransverseMercatorProj4 COMMAND TransverseMercatorProj
+  -e 6.4e6 1/150 --input-string "20 30")
+add_test (NAME TransverseMercatorProj5 COMMAND TransverseMercatorProj
+  -e 6.4e6 1/150 --input-string "20 30" -s)
+set_tests_properties (TransverseMercatorProj4 TransverseMercatorProj5
+  PROPERTIES PASS_REGULAR_EXPRESSION
+  "3266035\\.453860 2518371\\.552676 11\\.207356502141 1\\.134138960741")
+add_test (NAME TransverseMercatorProj6 COMMAND TransverseMercatorProj
+  -e 6.4e6 1/150 --input-string "3.3e6 2.5e6" -r)
+add_test (NAME TransverseMercatorProj7 COMMAND TransverseMercatorProj
+  -e 6.4e6 1/150 --input-string "3.3e6 2.5e6" -r -s)
+set_tests_properties (TransverseMercatorProj6 TransverseMercatorProj7
+  PROPERTIES PASS_REGULAR_EXPRESSION
+  "19\\.80370996793 30\\.24919702282 11\\.214378172893 1\\.137025775759")
 
 # Test fix to bad handling of pole by RhumbSolve -i
-# Reported  2015-02-24 by Thomas Murray <thomas.murray56 at gmail.com>
+# Reported 2015-02-24 by Thomas Murray <thomas.murray56 at gmail.com>
 add_test (NAME RhumbSolve0 COMMAND RhumbSolve
   -p 3 -i --input-string "0 0 90 0")
 add_test (NAME RhumbSolve1 COMMAND RhumbSolve
   -p 3 -i --input-string "0 0 90 0" -s)
-set_tests_properties (RhumbSolve0 RhumbSolve1 PROPERTIES PASS_REGULAR_EXPRESSION
-  "^0\\.0+ 10001965\\.729 ")
+set_tests_properties (RhumbSolve0 RhumbSolve1
+  PROPERTIES PASS_REGULAR_EXPRESSION "^0\\.0+ 10001965\\.729 ")
 
 # Test fix to CassiniSoldner::Forward bug found 2015-06-20
 add_test (NAME GeodesicProj0 COMMAND GeodesicProj
diff --git a/wrapper/js/00README.txt b/wrapper/js/00README.txt
new file mode 100644
index 0000000..a9f19e9
--- /dev/null
+++ b/wrapper/js/00README.txt
@@ -0,0 +1,11 @@
+The geodesic routines in GeographicLib have been implemented in
+JavaScript Python library.  See
+
+  https://geographiclib.sourceforge.io/html/js
+
+William Wall <wallw at users.sourceforge.net> has posted a method of
+automatically translating the C++ code into JavaScript
+
+  https://sourceforge.net/p/geographiclib/discussion/1026620/thread/f6f6b9ff/
+
+This will let you use other capabilities of GeographicLib in JavaScript.
diff --git a/wrapper/matlab/geographiclibinterface.m b/wrapper/matlab/geographiclibinterface.m
index 51e7847..c18be25 100644
--- a/wrapper/matlab/geographiclibinterface.m
+++ b/wrapper/matlab/geographiclibinterface.m
@@ -55,8 +55,8 @@ function geographiclibinterface(incdir, libdir)
     if ispc || ismac
       mex( ['-I' incdir], ['-L' libdir], ['-l' lib], [funs{i} '.cpp'] );
     else
-      mex( ['-I' incdir], ['-L' libdir], ['-l' lib], ['-Wl,-rpath=' libdir], ...
-           [funs{i} '.cpp'] );
+      mex( ['-I' incdir], ['-L' libdir], ['-l' lib], ...
+           ['-Wl,-rpath=' libdir], [funs{i} '.cpp'] );
     end
     fprintf(' done.\n');
   end

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-grass/geographiclib.git



More information about the Pkg-grass-devel mailing list